スタートガイド

このドキュメントでは、Instagram用Messenger APIサポート(当社開発者ポリシーでは「Instagram Messaging API」)をアプリから呼び出したり、Instagramプロアカウントメッセージを取得したりする方法について説明します。グラフAPIFacebookログインに精通していることを前提としています。

開始する前に

次のものにアクセスする必要があります。

Messengerプラットフォームを初めて使用する開発者

  • 下記の詳細な手順のガイドに従い、ページアクセストークンを生成して、Webhookをセットアップします。
  • さまざまなプラットフォーム機能を確認して、ニーズに合うものを採用します。

Messengerプラットフォームの使用経験がある開発者

  • アクセストークンとWebhookのコンセプトはよく似ています。Instagram用Messenger APIサポートでは、ページアクセストークンにinstagram_manage_messagesが含まれていることと、InstagramトピックのWebhookがサブスクリプション登録されていることが必要です。
  • ほとんどの機能はMessenger APIによく似ています。機能リストの詳細を確認して、ニーズに合うものを採用します。

ログインフロー

Instagram用Facebookログインまたはビジネスログインを使用して、アプリユーザーに必要なアクセス許可を求めることができます。

Instagram用ビジネスログインフローでは、ログインフロー中に次のことを実行できます。

  • InstagramアカウントをInstagramプロアカウントに移行する
  • ビジネス用のFacebookページを作成する
  • そのページをInstagramプロアカウントにリンクする

Instagram用ビジネスログインを実装するには、Instagram用ビジネスログインガイドをご覧になってから、このガイドに戻ってください。

1. ユーザーアクセストークンを取得する

Facebook開発者アカウントにログインしていることを確認してから、アプリにアクセスしてFacebookログインモーダルをトリガーします。Facebook開発者アカウントは、クエリ対象のInstagramアカウントにリンクされたFacebookページで少なくとも「やや強い」レベルのアクセス権でタスクを実行できる必要があります。

モーダルをトリガーした後、[OK]をクリックして、instagram_basicinstagram_manage_messagespages_manage_metadataのアクセス許可をアプリに付与します。

APIからユーザーアクセストークンが返されます。トークンをキャプチャして、アプリが次のいくつかのクエリで使用できるようにします。グラフAPIエクスプローラを使用している場合、トークンは自動的にキャプチャされ、参照用に[アクセストークン]フィールドに表示されます。

2. ユーザーのページを取得する

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ユーザーがMANAGECREATE_CONTENTMODERATE、または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を考案する)必要があることに留意してください。

3. ページアクセストークンを取得する

各種の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時間のみです。
  • 長期ユーザーアクセストークンを使用した場合、ページアクセストークンに有効期限はありません。

長期ページアクセストークンを生成するには、こちらのガイドに従ってください。

3a. Instagram開発者ダッシュボード使用してページアクセストークンを取得する

このツールは現在ロールアウト中で、今後数週間以内にすべての開発者に利用可能になる予定です。アプリダッシュボードに設定が表示されない場合は、上記のステップ1~5に従ってページアクセストークンを生成できます。

オプションとして、Instagram用Messenger APIサポートにオンボードしたいアセット(InstagramアカウントとFBページ)を所有している場合は、開発者アプリダッシュボードにあるInstagramセットアップツールを利用して、ページアクセストークンとWebhooksを簡単にセットアップできます。このツールは、開発者アプリダッシュボード → [Messenger] → [Instagram設定]にあります。トークンとWebhookを構成する従来の方法も引き続き使用できますが、このツールを利用すると環境のセットアップがより簡単になります。

4. メッセージコントロール設定で接続ツールを有効にする

APIでInstagramメッセージを管理するには、Instagramプロアカウントが、メッセージコントロール設定で接続ツールの切り替えを有効にできる必要があります。

5. 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の各種のガイドとリファレンスを参照してください。

次のステップ

  • アプリの開発を進めて、アプリが必要とする他のエンドポイントを正常に使用できるようにし、各エンドポイントが必要とするアクセス許可を記録する
  • Webhookのセットアップを完了して、ユーザーがInstagramプロアカウントにメッセージを送信するたびにリアルタイムの通知を受信できるようにする。
  • アプリレビュープロセスを完了して、アプリに必要なすべてのアクセス許可の承認をリクエストし、アプリが本番に移行した際にアプリユーザーがそれらのアクセス許可を付与できるようにする。

開発者サポート