发布

借助视频 API,您可以在 Facebook 公共主页上发布视频Reels

要求

如要在公共主页上发布视频,您将需要满足以下条件:

  • 获得由可在所需公共主页上执行 CREATE_CONTENT 任务的用户请求的公共主页访问口令
  • 请求该口令的用户必须通过 Facebook 登录向您的应用授予以下权限的访问权:
  • 获得视频句柄
    • 在您使用可续传 API 将视频文件上传到 Meta 服务器时,您会收到此句柄

发布视频

如要发布视频,请向 /<PAGE_ID>/videos 端点发送 POST 请求

curl -X POST \
  "https://graph-video.facebook.com/v21.0/<PAGE_ID>/videos" \
  -F "access_token=<PAGE_ACCESS_TOKEN>" \
  -F "title=<VIDEO_TITLE>" \
  -F "description=<VIDEO_DESCRIPTION>" \ 
  -F "fbuploader_video_file_chunk=<UPLOADED_FILE_HANDLE>"

若请求成功,您的应用会收到 JSON 响应,其中包含视频编号。

{
  "id":"<VIDEO_ID>"
}

上传视频文件

以下内容来自可续传 API 文档

上传文件

使用可续传 API 可将大型文件上传至 Meta 的社交关系图谱并恢复中断的上传会话,而无需从头开始上传。文件在上传之后便可发布。

对于支持已上传文件句柄的端点,其参考文档将说明这些端点是否支持可续传 API 返回的句柄。

前期准备

本指南假设您已阅读图谱 API 概览以及 Meta 开发相关的各篇指南,并执行了使用 Meta 进行开发所需要的必要操作。

您需要提供:

  • 一个 Meta 应用编号
  • 一个采用以下格式之一的文件:
    • pdf
    • jpeg
    • jpg
    • png
  • 用户访问口令

第 1 步:发起上传会话

如要发起上传会话,请向 /<APP_ID>/uploads 端点发送 POST 请求(其中 <APP_ID> 是您的 Meta 应用编号),在请求中加入以下必要参数:

  • file_name — 文件名
  • file_length — 文件的大小,以字节为单位
  • file_type — 文件的 MIME 类型。有效值为:application/pdfimage/jpegimage/jpgimage/pngvideo/mp4

请求语法

为方便阅读,示例格式已经过调整。

curl -i -X POST "https://graph.facebook.com/v21.0/<APP_ID>/uploads
  ?file_name=<FILE_NAME>
  &file_length=<FILE_LENGTH>
  &file_type=<FILE_TYPE>
  &access_token=<USER_ACCESS_TOKEN>"

请求成功后,您的应用将收到 JSON 响应,其中包含上传会话编号。

{
  "id": "upload:<UPLOAD_SESSION_ID>"
}

第 2 步:开始上传

如要开始上传文件,请向 /upload:<UPLOAD_SESSION_ID> 端点发送 POST 请求,在请求中加入以下 file_offset,并将其设为 0

请求语法

curl -i -X POST "https://graph.facebook.com/v21.0/upload:<UPLOAD_SESSION_ID>"
  --header "Authorization: OAuth <USER_ACCESS_TOKEN>"
  --header "file_offset: 0"
  --data-binary @<FILE_NAME>

您必须在标头中加入访问口令,否则调用将失败。

请求成功后,您的应用将收到文件句柄。您会在 API 调用中使用该句柄将文件发布到自己的端点。

{
  "h": "<UPLOADED_FILE_HANDLE>"
}

响应示例

{
    "h": "2:c2FtcGxl..."
}

恢复中断的上传

如果您已发起上传会话,但会话时间长于预期或会话已中断,请向 /upload:<UPLOAD_SESSION_ID> 端点(从 第 1 步中获取而来)发送 GET 请求。

请求语法

为方便阅读,示例格式已经过调整。

curl -i -X GET "https://graph.facebook.com/v21.0/upload:<UPLOAD_SESSION_ID>"
  --header "Authorization: OAuth <USER_ACCESS_TOKEN>""

请求成功后,应用将收到 JSON 响应,其中包含 file_offset 值,该值可用于从中断处恢复上传流程。

{
  "id": "upload:<UPLOAD_SESSION_ID>"
  "file_offset": <FILE_OFFSET>"
}

使用该 file_offset 值按第 2 步中的操作再发送一个 POST 请求。这将从中断处恢复上传流程。

后续步骤