이 튜토리얼은 동영상 API를 사용하여 페이지에서 동영상을 생성하는 방법을 설명합니다. 터미널과 같은 명령줄 도구나 Postman과 같은 앱을 사용하여 기본 cURL 요청을 보낼 수 있고 그래프 API 탐색기에 대해 기본적으로 알고 있다고 가정합니다.
다음과 같은 항목이 필요합니다.
CREATE_CONTENT
작업을 수행할 수 있는 페이지.일반적으로 Facebook 로그인을 앱에 구현하고 이를 사용하여 앱 사용자로부터 액세스 토큰을 가져와야 합니다. 그러나 이 튜토리얼에서는 Facebook 로그인을 이미 구현하였고 모든 앱에 대해 토큰을 손쉽게 생성할 수 있으므로 그래프 API 탐색기를 사용할 수 있습니다.
pages_manage_engagement
와 pages_read_user_content
권한을 검색하고 선택합니다.
GET /me/accounts
에지에 요청을 보냅니다. 그러면 사용자를 쿼리하고 마지막 단계에서 앱에 액세스 권한을 부여한 모든 페이지를 반환합니다. id
)와 페이지 액세스 토큰(access_token
)을 복사합니다.{ "data": [ { "access_token": "EBACf...", //Copy your Page Access Token "category": "Media", "category_list": [ { "id": "163003840417682", "name": "Media" } ], "name": "Metricsaurus", "id": "1755847768034402", //Copy your Page ID "tasks": [ "ANALYZE", "ADVERTISE", "MODERATE", "CREATE_CONTENT", "MANAGE" ] } ], "paging": { "cursors": { "before": "MTc1NTg0Nzc2ODAzNDQwMgZDZD", "after": "MTc1NTg0Nzc2ODAzNDQwMgZDZD" } } }
graph-video.facebook.com
호스트의 POST /page-id/videos
에지로 보냅니다. Postman을 사용할 경우 요청 본문에 쿼리 매개변수 키와 값을 form-data로 포함합니다.curl -X POST \ "https://graph-video.facebook.com/1755847768034402/videos" \ -F "access_token=EBACf..." \ -F "upload_phase=start" \ -F "file_size=77188035"
1755847768034402
)를 자신의 페이지 ID로 바꾸고, access_token
은 조금 전에 복사한 페이지 액세스 토큰으로 설정하고 file_size
는 동영상 파일의 전체 크기(단위: 바이트)로 설정합니다.{ "video_id": "225467151853466", "start_offset": "0", "end_offset": "1048576", "upload_session_id": "225467155186799" }
end_offset
을 제외한 모든 반환된 값을 복사합니다.POST /{page-id}/videos
에지로 다른 요청을 보내고 upload_session_id
와 첫 번째 동영상 청크의 이름을 포함합니다.
curl -X POST \ "https://graph-video.facebook.com/1755847768034402/videos" \ -F "access_token=EBACf..." \ -F "upload_phase=transfer" \ -F "start_offset=0" \ -F "upload_session_id=225467155186799" \ -F "video_file_chunk=@xaa"
cURL을 사용할 경우 파일 이름 앞에 @
기호를 포함합니다.
Postman을 사용할 경우 @
기호를 생략하고 video_file_chunk
는 파일로 설정하며(행에 커서를 가져가서 드롭다운 메뉴 실행) 첫 번째 청크 파일을 직접 선택합니다.
API가 새로운 start_offset
으로 응답합니다. 새 값을 캡처합니다.
{ "start_offset": "10485760", "end_offset": "15728640" }
start_offset
은 이전 응답에서 반환된 새 start_offset
값으로 설정하고 video_file_chunk
는 다음 차례의 동영상 청크 이름으로 설정합니다.curl -X POST \ "https://graph-video.facebook.com/1755847768034402/videos" \ -F "access_token=EBACf..." \ -F "upload_phase=transfer" \ -F "start_offset=10485760" \ -F "upload_session_id=225467155186799" \ -F "video_file_chunk=@xab"API가 새
start_offset
값으로 다시 한 번 응답합니다. 이 값은 다음 번 순서의 청크를 업로드하는 데 사용할 수 있습니다.
{ "start_offset":"15728640", "end_offset":"20971520" }
마지막 청크를 업로드하고 나면 동일한 엔드포인트로 마지막 요청을 보내고 upload_phase
를 완료로 설정하여 업로드 세션을 종료합니다.
curl -X POST \ "https://graph-video.facebook.com/1755847768034402/videos" \ -F "access_token=EBACf..." \ -F "upload_phase=finish" \ -F "upload_session_id=225467155186799"
요청이 성공하면 API는 업로드 세션을 종료하고 true
로 응답합니다.
{ "success": true }
Facebook에서 동영상을 결합하고 인코딩합니다. 인코딩 과정은 동영상 파일의 전체 크기에 따라 모두 인코딩될 때까지 최대 몇 분이 소요될 수 있습니다.