如要发起上传会话,请向 /<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/v24.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/v24.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/v24.0/upload:<UPLOAD_SESSION_ID>" --header "Authorization: OAuth <USER_ACCESS_TOKEN>"请求成功后,应用将收到 JSON 响应,其中包含 file_offset 值,该值可用于从中断处恢复上传流程。
{
"id": "upload:<UPLOAD_SESSION_ID>"
"file_offset": "<FILE_OFFSET>"
}再发送一个与第 2 步中相同的 POST 请求,只是在请求中将 file_offset 设为您刚收到的 file_offset 值。这将从中断处恢复上传流程。
curl -i -X POST "https://graph.facebook.com/v24.0/upload:<UPLOAD_SESSION_ID>" --header "Authorization: OAuth <USER_ACCESS_TOKEN>" --header "file_offset: <FILE_OFFSET>" --data-binary @<FILE_NAME>