本教程将为您介绍如何使用视频 API 在公共主页上创建视频。本教程假设您懂得如何使用命令行工具(如 Terminal)或应用(如 Postman)执行基本的 cURL 请求,并且对图谱 API 探索工具有基本的了解。
您将需要:
CREATE_CONTENT
任务的公共主页。一般来说,您必须在您的应用中实现 Facebook 登录,并通过该工具从应用用户处获取访问口令。不过,在本教程中,您可以使用图谱 API 探索工具,因为该工具已实现 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" } } }
graph-video.facebook.com
主机的 POST /page-id/videos
连线发送 cURL 请求。如果您使用的是 Postman,请在请求正文中以形式-数据 的形式加入查询参数的键和值。curl -X POST \ "https://graph-video.facebook.com/1755847768034402/videos" \ -F "access_token=EBACf..." \ -F "upload_phase=start" \ -F "file_size=77188035"
1755847768034402
),将 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
设为 File(将鼠标悬停在该行以触发下拉菜单),并手动选择第一个区块文件。
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 }
系统将组合您的视频,并对其进行编码。完整的编码过程最多可能持续几分钟,具体取决于视频文件的总大小。