Facebook Photo Upload - 페이스북 포토 업로드 (Multi Photo Upload)
Facebook 게시물 발행에 이어서 이번에는
Facebook Photo Upload에 대해 알아보겠습니다.
사전 준비작업으로 앱 등록과 access_token이 필요하며,
사진을 업로드하기 위해서는 publish_actions와 user_photos 권한이 반드시 요구됩니다.
(참고: http://cyberx.tistory.com/103 - javascript를 활용한 facebook 로그인 및 게시물 포스팅)
( Facebook 권한 : https://developers.facebook.com/docs/facebook-login/permissions/overview )
1. 단일 Photo Upload
사진을 전송하는 방법은 두 가지가 있습니다.
1. url parameter를 통한 사진의 URL 전송
2. POST file 전송
다음 예는 URL을 이용합니다.
cURL을 이용하거나, 블로그 하단의 예제코드를 참고하세요.
( url과 access_token 파라미터는 필수값이며, caption은 옵션입니다. )
curl -i -X POST \
-d "url=https%3A%2F%2Fwww.facebook.com%2Fimages%2Ffb_icon_325x325.png" \
-d "caption=test%20photo%20upload" \
-d "access_token=<user_photos_token>" \
"https://graph.facebook.com/v2.4/me/photos"
성공적으로 전송이 완료되면 id와 post_id값이 반환됩니다.
2. 멀티 Photo Upload
먼저 사진을 바로 게시하지 않고 업로드만 수행합니다.
( published=false
. 파라미터는 사진을 게시하지 않고 업로드만 수행하는 것을 의미합니다. )
curl -i -X POST \
-d "url=https%3A%2F%2Fwww.facebook.com%2Fimages%2Ffb_icon_325x325.png" \
-d "caption=test%20photo%20upload" \
-d "published=false" \
-d "access_token=<user_photos_token>" \
"https://graph.facebook.com/v2.4/me/photos"
성공적으로 업로드 시 id를 반환합니다.
또한, 게시되지 않고 업로드된 사진은 페이스북 서버에 약 24시간 동안 페이스북 서버에 남게되며, 24시간 이내에
사진을 게시하지 않으면 자동으로 삭제됩니다.
{
"id": "10153677042736789"
}
성공적으로 업로드한 사진들의 반환된 ID값들을 이용하여 Multi Photo Upload를 수행할 수 있습니다.
( 엔드포인트가 아래와 같은 경우 feed에 사진과 message가 같이 게시됩니다. )
curl -i -X POST \
-d "message=Testing%20multi-photo%20post!" \
-d "attached_media%5B0%5D=%7B%22media_fbid%22%3A%221002088839996%22%7D" \
-d "attached_media%5B1%5D=%7B%22media_fbid%22%3A%221002088840149%22%7D" \
-d "access_token=<publish_actions_token>" \
"https://graph.facebook.com/v2.4/me/feed"
성공 시 아래와 같은 응답을 얻을 수 있습니다.
PHP는 SDK와 같은 게시 요청을 만들려면 :
$request = new FacebookRequest(
$session,
'POST',
'/me/feed',
array(
'message' => 'Testing multi-photo post!',
'attached_media[0]' => '{"media_fbid":"1002088839996"}',
'attached_media[1]' => '{"media_fbid":"1002088840149"}'
)
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */
3. 예제코드
JAVA를 이용한 예제코드입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | public void PhotoUpload(){ String imageURL = "{input your image URL}"; String access_token ="{input your access_token"}; URL url = null; URLConnection connection = null; try{ url = new URL("https://graph.facebook.com/v2.4/me/photos"); }catch(MalformedURLException me){ me.printStackTrace(); } connection = url.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); message = URLEncoder.encode(message, "UTF-8"); accessToken = URLEncoder.encode(accessToken, "UTF-8"); String param = "url=" + imageURL + "&access_token=" + accessToken; try{ out = new DataOutputStream(connection.getOutputStream()); out.writeBytes(param); out.flush(); } finally{ out.close(); } } | cs |
이상으로 Facebook (Multi)Photo Upload에 대한 설명을 모두 마치겠습니다.
(참고: Facebook API 문서 : https://developers.facebook.com/docs/)
'유용한 정보' 카테고리의 다른 글
W3C HTML5 Conference 2016 방문기 (0) | 2016.12.27 |
---|---|
VPN과 OpenVPN 사용법 (0) | 2016.12.04 |
JavaScript를 활용한 Facebook 로그인 및 게시물 포스팅 (0) | 2016.10.24 |
아이폰 성공의 바탕 iOS의 숨겨진 역사 (0) | 2016.04.04 |
Google Analytics API 사용하기 - Javascript ver. (0) | 2016.03.18 |