如要发起上传会话,请向 /<APP_ID>/uploads
端点发送 POST
请求(其中 <APP_ID>
是您的 Meta 应用编号),在请求中加入以下必要参数:
file_name
— 文件名file_length
— 文件的大小,以字节为单位file_type
— 文件的 MIME 类型。有效值为:application/pdf
、image/jpeg
、image/jpg
、image/png
和 video/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>" }
如要开始上传文件,请向 /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
请求。这将从中断处恢复上传流程。