このドキュメントでは、MessengerとInstagramメッセージのスレッドについての情報を取得する方法について説明します。次のものを取得できます。
このチュートリアルは、Messengerプラットフォームの概要とInstagramメッセージの概要を読んでいること、および必要なコンポーネントが実装されていることを前提としています。
以下が必要です。
MESSAGING
タスクまたはMODERATE
タスクを実行できる利用者からリクエストされた、ページアクセストークン利用者とページの間のMessengerスレッドについては、アプリに次のものが必要です。
MESSAGING
タスクやMODERATE
タスクを実行できる利用者がリクエストしたページアクセストークン利用者とInstagramプロアカウントの間のInstagramメッセージスレッドについては、アプリに次のものが必要です。
MESSAGING
タスクを実行できる利用者がリクエストしたページアクセストークンinstagram_basic
、instagram_manage_messages
、pages_manage_metadata
のアクセス許可このAPIを利用すると、アプリにInstagramビジネスアカウントが新たにリンクされたときに、過去のスレッドについて受信箱を同期することができます。
スレッドのリストを取得するには、instagram
またはmessenger
に設定したplatform
パラメーターを指定したGET
リクエストを/PAGE-ID/conversations
エンドポイントに送信します。
curl -i -X GET "https://graph.facebook.com/LATEST-API-VERSION/PAGE-ID/conversations ?platform=PLATFORM &access_token=PAGE-ACCESS-TOKEN"
成功した場合、アプリは、利用者との間のスレッドのIDのリストとメッセージ送信最終日時を含むJSONオブジェクトを受け取ります。
{ "data": { "id": "CONVERSATION-ID-1", "updated_time": "UNIX-TIMESTAMP" }, { "id": "CONVERSATION-ID-2", "updated_time": "UNIX-TIMESTAMP" } ... ] }
InstagramプロアカウントまたはFacebookページと特定の顧客との間のスレッドを取得するには、platform
パラメーターと、当該顧客のInstagramスコープIDまたはページスコープIDに設定したuser_id
パラメーターを指定して、GET
リクエストを/PAGE-ID/conversations
エンドポイントに送信します。
curl -i -X GET "https://graph.facebook.com/LATEST-API-VERSION/PAGE-ID/conversations ?platform=PLATFORM &user_id=INSTAGRAM-OR-PAGE-SCOPED-ID &access_token=PAGE-ACCESS-TOKEN"
成功すると、アプリはスレッドのIDを受け取ります。
{ "data": [ { "id": "CONVERSATION-ID" }, ] }
スレッド内のメッセージのリストを取得するには、messages
フィールドを指定したGET
リクエストを/CONVERSATION-ID
エンドポイントに送信します。
curl -i -X GET "https://graph.facebook.com/LATEST-API-VERSION/CONVERSATION-ID ?fields=messages &access_token=PAGE-ACCESS-TOKEN"
成功すると、アプリは、メッセージIDと各メッセージの作成時刻のリストを受け取ります。
{ "messages": { "data": [ { "id": "Message ID-1", "created_time": "UNIX-TIMESTAMP-MOST-RECENT-MESSAGE" }, { "id": "Message ID-2", "created_time": "UNIX-TIMESTAMP" }, { "id": "Message ID-3", "created_time": "UNIX-TIMESTAMP" }, ... ] }, "id": "Conversation ID", }
メッセージに関する情報(送信者、受信者、メッセージの内容など)を取得するには、関心のあるフィールドを指定して、GET
リクエストを/MESSAGE-ID
エンドポイントに送信します。
デフォルトのフィールドはid
とcreated_time
です。
注:/CONVERSATION-ID
エンドポイントへのクエリは、スレッド内のすべてのメッセージIDを返します。ただし、スレッド内の最新のメッセージ20件の詳細しか取得できません。最新の20件より前のメッセージをクエリした場合は、メッセージが削除されていることを示すエラーが表示されます。
curl -i -X GET "https://graph.facebook.com/LATEST-API-VERSION/MESSAGE-ID ?fields=id,created_time,from,to,message &access_token=PAGE-ACCESS-TOKEN"
成功すると、アプリは次のJSON応答を受け取ります。この例では、顧客はプレーンテキストメッセージをInstagramプロアカウントに送信します。
{ "id": "aWdGGiblWZ...", "created_time": "2022-07-12T19:11:07+0000", "to": { "data": [ { "username": "INSTAGRAM-PROFESSIONAL-ACCOUNT-USERNAME", "id": "INSTAGRAM-PROFESSIONAL-ACCOUNT-ID" } ] }, "from": { "username": "INSTAGRAM-USERNAME", "id": "INSTAGRAM-SCOPED-ID" }, "message": "Hi Kitty!" }
以下のリファレンスをご覧ください。