再開可能アップロードAPIでは、大きなファイルをMetaのソーシャルグラフにアップロードし、中断されたアップロードセッションを最初からやり直さなくても再開することができます。一旦ファイルをアップロードしたら、公開することが可能です。
アップロードされたファイルハンドルをサポートするエンドポイントを参照すると、そのエンドポイントが再開可能アップロードAPIによって返されたハンドルをサポートしているかどうかが示されます。
このガイドは、開発者がすでにグラフAPI概要ガイドとMeta開発ガイドを読み、Metaによる開発で必要となるアクションを実行していることを前提としています。
以下の情報が必要です。
pdfjpegjpgpngmp4アップロードセッションを開始するには、以下の必須パラメーターを指定して、POSTリクエストを/<APP_ID>/uploadsエンドポイントに送信します。<APP_ID>は、アプリのMeta IDです。
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>"成功すると、アプリはアップロードセッションIDを含むJSON応答を受け取ります。
{
"id": "upload:<UPLOAD_SESSION_ID>"
}以下のfile_offsetを0に設定して、POSTリクエストを/upload:<UPLOAD_SESSION_ID>エンドポイントに送信し、ファイルのアップロードを開始します。
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..."
}開始したアップロードセッションが予想以上に長引いている場合や途中で中断された場合は、ステップ1の/upload:<UPLOAD_SESSION_ID>エンドポイントに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>