このドキュメントでは、Instagram用Messenger APIサポート(当社開発者ポリシーでは「Instagram Messaging API」)をアプリから呼び出したり、Instagramプロアカウントメッセージを取得したりする方法について説明します。グラフAPIとFacebookログインに精通していることを前提としています。
次のものにアクセスする必要があります。
MODERATE
タスクを実行できるMeta開発者アカウント Messengerプラットフォームを初めて使用する開発者
Messengerプラットフォームの使用経験がある開発者
Instagram用Facebookログインまたはビジネスログインを使用して、アプリユーザーに必要なアクセス許可を求めることができます。
Instagram用ビジネスログインフローでは、ログインフロー中に次のことを実行できます。
Instagram用ビジネスログインを実装するには、Instagram用ビジネスログインガイドをご覧になってから、このガイドに戻ってください。
Facebook開発者アカウントにログインしていることを確認してから、アプリにアクセスしてFacebookログインモーダルをトリガーします。Facebook開発者アカウントは、クエリ対象のInstagramアカウントにリンクされたFacebookページで少なくとも「やや強い」レベルのアクセス権でタスクを実行できる必要があります。
モーダルをトリガーした後、[OK]をクリックして、instagram_basic
、instagram_manage_messages
、pages_manage_metadata
のアクセス許可をアプリに付与します。
APIからユーザーアクセストークンが返されます。トークンをキャプチャして、アプリが次のいくつかのクエリで使用できるようにします。グラフAPIエクスプローラを使用している場合、トークンは自動的にキャプチャされ、参照用に[アクセストークン]フィールドに表示されます。
GET /me/accounts
エンドポイントをクエリします。これはGET /{user-id}/accounts
に変換され、アクセストークンに基づいてFacebookのユーザーノードでGETが実行されます。
curl -i -X GET \ "https://graph.facebook.com/v9.0/me/accounts?access_token={access-token}"
これにより、現在のFacebookユーザーがMANAGE
、CREATE_CONTENT
、MODERATE
、またはADVERTISE
タスクを実行できるFacebookページのコレクションが返されます。
{ "data": [ { "access_token": "EAAJjmJ...", "category": "App Page", "category_list": [ { "id": "2301", "name": "App Page" } ], "name": "Metricsaurus", "id": "134895793791914", // capture the Page ID "tasks": [ "ANALYZE", "ADVERTISE", "MODERATE", "CREATE_CONTENT", "MANAGE" ] } ] }
クエリ対象のInstagramアカウントにリンクされているFacebookページのIDをキャプチャします。アプリユーザーは複数のページでタスクを実行できる場合があるため、最終的には、キャプチャする正しいページIDを決定できるロジックを導入する(または、アプリユーザーが正しいページを特定できるようなUIを考案する)必要があることに留意してください。
各種のInstagram Messaging API呼び出しを実行するには、以前はFBログインフローを通じて付与されていた、該当Instagramアカウントの関連するページアクセストークン(PAT)を使用する必要があります。
ユーザーアクセストークンを使用して、/{page-id}
エンドポイントにGET
リクエストを送信します。以下はその例です。
curl -i -X GET "https://graph.facebook.com/{page-id}? fields=access_token& access_token={user-access-token}"
成功すると、次の応答がアプリに返されます。
{ "access_token":"{page-access-token}", "id":"{page-id}" }
長期ページアクセストークンを生成するには、こちらのガイドに従ってください。
このツールは現在ロールアウト中で、今後数週間以内にすべての開発者に利用可能になる予定です。アプリダッシュボードに設定が表示されない場合は、上記のステップ1~5に従ってページアクセストークンを生成できます。
オプションとして、Instagram用Messenger APIサポートにオンボードしたいアセット(InstagramアカウントとFBページ)を所有している場合は、開発者アプリダッシュボードにあるInstagramセットアップツールを利用して、ページアクセストークンとWebhooksを簡単にセットアップできます。このツールは、開発者アプリダッシュボード → [Messenger] → [Instagram設定]にあります。トークンとWebhookを構成する従来の方法も引き続き使用できますが、このツールを利用すると環境のセットアップがより簡単になります。
APIでInstagramメッセージを管理するには、Instagramプロアカウントが、メッセージコントロール設定で接続ツールの切り替えを有効にできる必要があります。
キャプチャしたページIDと、ページアクセストークン(PAT)を使用して、GET /{page-id}/conversations?platform=instagram
エンドポイントをクエリします。
curl -i -X GET \ "https://graph.facebook.com/v9.0/17841405822304914/conversations?platform=instagram&access_token={access-token}"
これにより、InstagramユーザーのすべてのスレッドオブジェクトのIDが返されます。
{ "data": [ { "id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MTM2MDk5MDc1MzYyOTgx" }, { "id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MTYzMzQ2MzE5NjM1NDcy" }, { "id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MTk3MTY0NjI2NzAyMjMw" }, { "id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MzkzNDI5MDYzMzkyNjU0" } }
この最後のクエリを正常に実行できれば、任意のInstagram用Messenger APIサポートエンドポイントを使用してクエリを実行できるはずです。各エンドポイントでできることと、必要なアクセス許可については、Metaの各種のガイドとリファレンスを参照してください。