このドキュメントが更新されました。
日本語への翻訳がまだ完了していません。
英語の最終更新: 2023/11/10

添付ファイルアップロードAPIのリファレンス

添付ファイルアップロードAPIを使用すると、後でメッセージで送信できるアセットをアップロードできます。これにより、よく使用するファイルを何度もアップロードする必要がなくなります。このAPIは、URLのアセットの保存とローカルファイルシステムのアセットの保存をサポートしています。

Send APIを使用して、添付ファイル付きのメッセージの送信と、後から使うための添付ファイルの保存を同時に行うこともできます。詳しくは、Send APIリファレンスをご覧ください。

添付ファイルをアップロードする

添付ファイルをアップロードするには、typepayloadを指定したmessage.attachmentとともに、/Your-page-id/message_attachmentエンドポイントにPOSTリクエストを送信してください。複数のメッセージでアセットを使用するには、payload.is_reusabletrueに設定してください。

URLからのアップロードリクエストの例

読みやすいようにフォーマットしています。page_access_tokenなどの太字斜体の値を実際の値に置き換えてください。

curl -X POST "https://graph.facebook.com/v19.0/Your-page-id/message_attachment" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"Your_page_access_token",
           "message":{
             "attachment":{
               "type":"image", 
               "payload":{
                 "url":"https.your-url.com/image.jp",
                 "is_reusable": true
               }
             }
           }
         }'

ファイルからのアップロードリクエストの例

読みやすいようにフォーマットしています。page_access_tokenなどの太字斜体の値を実際の値に置き換えてください。

curl -X POST "https://graph.facebook.com/v19.0/Your-page-id/message_attachment" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"Your_page_access_token",
           "message":{
             "attachment":{
               "type":"image"
             }
           },
           "filedata":"@/path-to-your-file/image.png";"type":"image/png"
         }'

成功すると、メッセージで使用する添付ファイルのIDに設定されたattachment_idのJSONオブジェクトがアプリに送信されます。

{"attachment_id": "Your-attachment-ID"}

アップロード済みのアセットとともにメッセージを送信する

過去にアップロードしたアセット(message.attachment.payload.is_reusabletrueに設定してアップロードされたもの)とともにメッセージを送信するには、POSTリクエストをrecipient.idを指定して/Your-page-id/messagesに、typepayload.attachment_idを指定したmessage.attachmentオブジェクトとともに送信してください。

ファイルからのアップロードリクエストの例

読みやすいようにフォーマットしています。page_access_tokenなどの太字斜体の値を実際の値に置き換えてください。

curl -X POST "https://graph.facebook.com/v19.0/Your-page-id/messages" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"Your_page_access_token",
           "message":{
             "attachment":{
               "type":"image",
               "payload":{
                 "attachment_id":"Your-attachment-ID"
               }
             }
           }
         }'

成功すると、アプリはsuccesstrueに設定されたJSONオブジェクトを受け取ります。

{"success": "true"}

プロパティ

URLから添付する場合は、リクエスト本文に次のプロパティをJSONオブジェクトとして指定します。ファイルからの添付の場合は、プロパティをフォームデータとして送信します。

message

Description of the message to be sent.
Property Type Description

message.attachment

Object

An object describing attachments to the message.

message.attachment

プロパティ 説明

type

文字列

添付ファイルの種類。次のいずれかである必要があります。

  • 画像
  • 動画
  • 音声
  • ファイル

payload

オブジェクト

添付ファイルを説明するpayloadオブジェクト。

message.attachment.payload

プロパティ 説明

url

文字列

任意。アップロードするファイルのURL。最大ファイルサイズ: 画像は8 MB、その他のファイルタイプは25 MB (エンコーディング後)。タイムアウト: 動画は75秒、その他のファイルタイプは10秒。

is_reusable

ブーリアン

任意。trueに設定すると、保存したアセットを他のメッセージ宛先に送れるようになります。デフォルトはfalseです。

エラーコード

エラーコードサブコードメッセージ

100

2018074

無効なIDの可能性、または添付ファイルの所有権がない。

100

2018008

URLからファイルのフェッチに失敗。URLが有効であること、有効なSSL証明書があること、有効なファイルサイズであること、タイムアウトを避けるためにサーバーが十分な速さで応答していることを確認してください。

100

2018294

動画のアップロードがタイムアウトしたか、動画が壊れています。動画を75秒以内にフェッチできない場合は、タイムアウトになりますのでご注意ください

100

2018047

添付ファイルのアップロードの失敗。このエラーのよくある原因は、提供されたメディアタイプがURLで指定されたファイルタイプと一致しないことです。