Messengerのアプリやボット間で利用者をリンクさせる

通常、ビジネスはウェブサイト、モバイルアプリ、Messengerのように複数のチャンネルを使用してカスタマーとやり取りを行います。利用者がウェブサイトやモバイルアプリでFacebookログインを使用すると、特定のFacebookアプリに対してID (app-scoped ID)が作成されます。Messenger経由でビジネスとやり取りした場合は、Messengerのボットに関連付けられている特定のページに対してID (page-scoped ID)が作成されます。つまり、利用者は同じでも、コミュニケーションのためのチャンネルが異なると、IDも変わります。app-scoped IDは、利用者がアプリにログインしたときに作成されるため、利用者がまだアプリをインストール、サインインしていない場合は、app-scoped IDが表示されません。

ビジネスでは、複数のチャンネル間で、利用者にシームレスなサービスを提供する必要がある場合があります。たとえば、ある利用者がMessengerのボットを通じてビジネスとやり取りをする場合に、その利用者がFacebookアプリの既存のカスタマー(ウェブサイトやモバイルアプリでFacebookログインを使用したことがあるなど)であることが分かれば、よりパーソナライズされたサービスを提供できます。Facebookには、同じビジネスが所有するアプリやMessengerのボット間で同じ利用者のIDを取得するためのAPIが用意されています。

まず、アプリと、Messengerのボットに関連付けられているページを同じビジネスが所有していることをFacebookに伝える必要があります。そのためには、Facebookビジネスマネージャを使用して次の操作を実行します。

次に、ids_for_appsエッジまたはids_for_pagesエッジにクエリを実行してユーザーノードを探し、IDを取得します。

初回のAPI呼び出しの時点で、アプリ審査が開始される場合があります。審査は完了までに、約48時間かかります。

本ドキュメントのコンテンツ:

使用事例

このAPIの主な使用事例として、次のようなものがあります。

MessengerのボットのユーザーIDを指定して、同じビジネスが所有するアプリのIDを取得する

  • ユーザーノード: Messengerのボットに関連付けられているページを対象とするID。
  • エッジ:ids_for_apps
  • 要件: この場合、ページアクセストークンappsecret_proofが必要です。ともに、ページを管理するアプリを使用して生成する必要があります。さらに、ページを管理するアプリとリンクさせるその他のアプリを、同じビジネスが所有している必要があります。

例:

  1. この例では、同じビジネスが所有するすべてのアプリのIDが返されます。
    GET /{user-id}/ids_for_apps
        ?access_token=[page_access_token]
        &appsecret_proof=[appsecret_proof]
  2. ここでは、アプリID 10152368852405295を持つアプリのIDが返されます。
    GET /{user-id}/ids_for_apps
        ?app=10152368852405295
        &access_token=[page_access_token]
        &appsecret_proof=[appsecret_proof]

アプリのユーザーIDを指定して、同じビジネスが所有するMessengerボットのIDを取得する

  • ユーザーノード: アプリを対象とするID。
  • エッジ:ids_for_pages
  • 要件: この場合、ページアクセストークンappsecret_proofが必要です。ともに、ページを管理する、対象となるIDを持つアプリを使用して生成する必要があります。また、アプリとページを同じビジネスが所有する必要があります。

例:

  1. この例では、関連付けられたページを同じビジネスが所有しているMessengerのすべてのボットのIDが返されます。
    GET /{user-id}/ids_for_pages
        ?access_token=[app_access_token]
        &appsecret_proof=[appsecret_proof]
  2. ここでは、関連付けられたページのIDが380374449010653のMessengerのボットのIDが返されます。
    GET /{user-id}/ids_for_pages
        ?page=380374449010653
        &access_token=[app_access_token]
        &appsecret_proof=[appsecret_proof]

アプリのユーザーIDを指定して、同じビジネスが所有する他のアプリのIDを取得する

  • ユーザーノード: ユーザーノードはアプリを対象とするIDです。
  • エッジ:ids_for_apps
  • 要件: この場合、アプリアクセストークンが必要です。対象となるIDを持つアプリを使用して生成されます。また、アプリを同じビジネスが所有する必要があります。

例:

  1. この例では、同じビジネスが所有するすべてのアプリのIDが返されます。
    GET /{user-id}/ids_for_apps
        ?access_token=[app_access_token]
  2. ここでは、アプリID 10152368852405295を持つアプリのIDが返されます。
    GET /{user-id}/ids_for_apps
        ?app=10152368852405295
        &access_token=[app_access_token]

ページ(ボットと関連付けられているもの)のユーザーIDを指定して、同じビジネスが所有する別のページのIDを取得する

  • ユーザーノード: Messengerのボットに関連付けられているページを対象とするID。
  • エッジ:ids_for_pages
  • 要件: この場合、ページアクセストークンappsecret_proofが必要です。ともに、ページを管理するアプリを使用して生成する必要があります。また、ページを同じビジネスが所有する必要があります。

例:

  1. この例では、同じビジネスが所有するすべてのページのIDが返されます。
    GET /{user-id}/ids_for_pages
        ?access_token=[page_access_token]
        &appsecret_proof=[appsecret_proof]
  2. ここでは、アプリID 380374449010653を持つページのIDが返されます。
    GET /{user-id}/ids_for_pages
        ?app=380374449010653
        &access_token=[page_access_token]
        &appsecret_proof=[appsecret_proof]

クエリサンプル

アプリのIDから関連付けられているIDを取得する

GET /{user-id}
    ?fields=name,age_range,ids_for_apps,ids_for_pages
    &access_token=[app_access_token]

応答の例:

{
  "name": "John Smith",
  "age_range": {
    "min": 21
  },
  "ids_for_apps": {
    "data": [
      {
        "id": "10152368852405295",
        "app": {
          "category": "Business",
          "link": "https://www.facebook.com/games/?app_id=1419232575008550",
          "name": "John's Game App",
          "id": "1419232575008550"
        }
      },
      {
        "id": "645195294",
        "app": {
          "link": "https://apps.facebook.com/johnsmovieappns/",
          "name": "JohnsMovieApp",
          "namespace": "johnsmovieappns",
          "id": "259773517400382"
        }
      }
    ],
    "paging": ...
  },
  "ids_for_pages": {
    "data": [
      {
        "id": "12345123", // The psid for the user for that page
        "page": {
          "category": "Musician",
          "link": "https://www.facebook.com/Johns-Next-Great-Thing-380374449010653/",
          "name": "John's Next Great Thing",
          "id": "380374449010653"
        }
      }
    ],
    "paging": ...
  },
  "id": "645195294"
}

MessengerのボットのIDから関連付けられているIDを取得する

GET /{user-id}
    ?fields=name,is_payment_enabled,ids_for_apps,ids_for_pages
    &access_token=[page_access_token]
    &appsecret_proof=[appsecrete_proof]

応答の例:

{
  "name": "John Smith",
  "is_payment_enabled": true,
  "ids_for_apps": {
    "data": [
      {
        "id": "10152368852405295",
        "app": {
          "category": "Business",
          "link": "https://www.facebook.com/games/?app_id=1419232575008550",
          "name": "John's Game App",
          "id": "1419232575008550"
        }
      },
      {
        "id": "645195294",
        "app": {
          "link": "https://apps.facebook.com/johnsmovieappns/",
          "name": "JohnsMovieApp",
          "namespace": "johnsmovieappns",
          "id": "259773517400382"
        }
      }
    ],
    "paging": ...
  },
  "ids_for_pages": {
    "data": [
      {
        "id": "12345123", // The psid for the user for that page
        "page": {
          "category": "Musician",
          "link": "https://www.facebook.com/Johns-Next-Great-Thing-380374449010653/",
          "name": "John's Next Great Thing",
          "id": "380374449010653"
        }
      }
    ],
    "paging": ...
  },
  "id": "645195294"
}

    

ポリシー

このAPIは、ビジネスのアプリやページのIDを、そのビジネスが代理で所有、維持する別のアプリやページにリンクさせる場合にのみ使用できます。たとえば、サービスプロバイダがこのAPIを使用して、複数のカスタマーのサポートをすることはありません。

このポリシーに違反する恐れがある場合は、APIリクエストがレビューの対象となり、エラーメッセージ「(#200) Your business is currently going through review to access this API (現在、このAPIへのアクセスについて、あなたのビジネスがレビューされています)」が返されます。