JSP

 

 

인스타그램 게시물 연동하기 A to Z

 

https://velog.io/@jiwonyyy/%EC%9D%B8%EC%8A%A4%ED%83%80%EA%B7%B8%EB%9E%A8-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0

 

https://developers.facebook.com/docs/instagram-api/getting-started

 

 

 

Instagram 그래프 API

https://developers.facebook.com/docs/instagram-api/getting-started?locale=ko_KR

 

 

 

 

 

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.springframework.beans.factory.annotation.Autowired;

import egovframework.com.asapro.support.Util;

@Service
public class Test {
	
	@Autowired
	private InstagramService instagramService;
	
	 public void updateInstagram() {
	    	
	    	String instaUrl = "https://graph.facebook.com/v19.0/인타그램아이디/media?fields=caption,media_url,timestamp,permalink,media_type,thumbnail_url&access_token=토큰";
	    	HttpGet get = new HttpGet(instaUrl);
			String result    = "";
			DefaultHttpClient http = new DefaultHttpClient();
			
			System.out.println("인스타 그램");
			
			try {
				result = http.execute(get, new BasicResponseHandler());
				JSONParser jsonParser = new JSONParser();
				JSONObject jsonObject = (JSONObject) jsonParser.parse(result);
				JSONArray data = (JSONArray)jsonObject.get("data");
				
				List<InstagramVo> itemList = new ArrayList<InstagramVo>();
				//기존데이터 삭제 초기화
				instagramService.initInstaItem();
				
				for(int i = 0; i < data.size(); i++) {
					JSONObject item = (JSONObject)data.get(i);
					
					InstagramVo obj = new InstagramVo();
					obj.setVideoId(Util.nvl(item.get("id")));
					
					String title = Util.nvl(item.get("caption"));
					//제목 이모티콘 제거
					Pattern emoticons = Pattern.compile("[\\uD83C-\\uDBFF\\uDC00-\\uDFFF]+");
					Matcher emoticonsMatcher = emoticons.matcher(title);
					title = emoticonsMatcher.replaceAll(" ");
					
					obj.setPublishDate(Util.substring(Util.nvl(item.get("timestamp")), 0, 10));
					obj.setTitle(title);
					
					String imageUrlKey = "media_url";
					

					if("VIDEO".equals(Util.nvl(item.get("media_type")))) {
						imageUrlKey = "thumbnail_url";
					}
					
					obj.setThumbnailPath(Util.nvl(item.get(imageUrlKey)));
					obj.setLink(Util.nvl(item.get("permalink")));
					
					instagramService.insertInstaItem(obj);
					
				}
				
				
			}catch(Exception e){
				e.printStackTrace();
			}
	    }
	    

	
}


@Data
class InstagramVo {
	private String title;
	private String thumbnailPath;
	private String videoId;
	private String desc;
	private String publishDate;
	private String link;
}

 

 

 

 

Instagram 그래프 API"에서 발급한 액세스 토큰의 기본 유효 기간은 60일입니다. 이 토큰은 60일 후에 만료되므로, 그 전에 토큰을 갱신해야 합니다. 토큰을 갱신하는 방법은 다음과 같습니다:

var token = "토큰값"; // 여기에 장기 토큰을 입력하세요.
$.ajax ({
    type:'GET',
    url : 'https://graph.instagram.com/refresh_access_token?grant_type=ig_refresh_token&access_token='+token,
    dataType:'json',
    success:function (data) {
        token = data["access_token"];
    },
    error:function (request, error) {
        alert ("error");
    }
});

 

 

 

토큰 60일마다 자동 갱신 처리는 다음을 통해 개발을  해야 한다.

 

https://developers.facebook.com/docs/instagram-basic-display-api/guides/long-lived-access-tokens

 

 

장기 실행 토큰 새로 고침

GET /refresh_access_token 엔드포인트를 사용하여 만료되지 않은 장기 실행 Instagram 사용자 액세스 토큰을 새로 고침합니다.

장기 실행 토큰을 새로 고침하면 다시 60일간 유효하게 됩니다. 60일 이내에 새로 고침되지 않은 장기 실행 토큰은 만료됩니다.

요청에는 다음 항목이 포함되어야 합니다.

  • 유효한(만료되지 않은) 장기 실행 Instagram 사용자 액세스 토큰

자세한 내용은 GET /refresh_access_token 참고 자료를 참조하세요.

 

 

 

 

인스타그램 연동 api 자동 갱신 방법은 어떻게 될까요?

 

 

https://sir.kr/qa/507863

 

 

 

 

 

 

 

 

 

 

 

 

 

about author

PHRASE

Level 1  라이트

댓글 ( 0)

댓글 남기기

작성