В этом руководстве показано, как использовать Video API для создания видео на Странице. Предполагается, что вы умеете выполнять основные запросы cURL в инструменте командной строки (например, в "Терминале") или в приложении (например, Postman), а также знакомы с основными функциями Graph API Explorer.
Вам понадобятся:
CREATE_CONTENT
.Обычно для получения маркеров доступа пользователей приложения в нем реализуется вход через Facebook. Однако в этом курсе вы можете использовать Graph API Explorer, поскольку в этом инструменте уже реализован вход через Facebook и он позволяет легко генерировать маркеры доступа для любого из ваших приложений.
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" } } }
POST /page-id/videos
на хосте graph-video.facebook.com
. Если вы используете приложение 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
значение finish.
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 }
Мы соберем полное видео и закодируем его. Кодирование может занять несколько минут в зависимости от общего размера видеофайла.