透過可恢復的上載 API,您可以將大型檔案上載至 Meta 社交關係圖,從中斷的上載連線階段繼續上載,而無需重新開始。檔案一經上載便可發佈。
我們有就支援已上載檔案控制代碼的端點提供參考資料,並在當中指出不同的端點是否支援由可恢復的上載 API 所傳回的控制代碼。
本指南假設您已閱讀 Graph API 概覽和 Meta 開發指南,並已執行使用 Meta 開發內容所需的步驟。
您需要準備以下事項:
pdf
jpeg
jpg
png
如要開始上載連線階段,請傳送 POST
要求至 /<APP_ID>/uploads
端點,當中 <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>" }
傳送 POST
要求至 /upload:<UPLOAD_SESSION_ID>
端點以開始上載檔案,而以下的 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..." }
如果您已發起上載連線階段,但所需時間超出預期或被中斷,請向第 1 步的 /upload:<UPLOAD_SESSION_ID>
端點傳送 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>" }
按照第 2 步的做法,使用此 file_offset
值傳送另一個 POST
要求。這樣便可從中斷的位置恢復上載流程。