アプリのテスト、開発、ステージング、QAの各バージョンで共通のScoped User IDを使用したい場合は、テストアプリを使用してください。
最初にアプリのインスタンスにログインする人と、制限付きログインでログインする人には、Facebookからapp-scoped user IDが発行されます。最初にMessengerボットを使う人には、Facebookからpage-scoped user IDが発行されます。つまり定義上、同一のユーザーのIDがこうしたアプリとボット間で異なる場合があるということです。
1つのビジネスが複数のFacebookアプリやボットを運用するケースがあります。たとえば、ゲーム制作会社がクロスプロモーションや不正の検知、ユーザーとのコミュニケーションに使用するボットなどのユースケースをサポートする場合によく見られます。こうしたケースでは、アプリとボット間で異なる同一のユーザーのIDをマッピングする必要がある場合があります。
複数のアプリ間で同一のユーザーをマッピングする方法は3つあります。
こうしたメカニズムを使用する前に、まず、同一のビジネスによって対象となるアプリが所有および運用されていることをFacebookに伝える必要があります。そのためには、Facebook Businessマネージャを使用して次の操作を実行します。
token_for_business
フィールドアプリがビジネスマネージャに関連付けられたなら、制限付きログインまたはアプリのインスタンスへの初回ログインで取得したapp-scoped user IDを使うことにより、User
ノードのtoken_for_business
フィールドをリクエストできます。このユーザーにおいては、その呼び出しは、同一のビジネスマネージャが管理するすべてのアプリで同じ共通の文字列を返します。
GET /me?fields=token_for_business
結果は次のようになります。
{ "id": "1234567890" "token_for_business": "weg23ro87gfewblwjef" }
使用に関するメモ:
token_for_business
の値も変わります。token_for_business
フィールドをリクエストするときに、アプリがビジネスマネージャに関連付けされていなければ、呼び出しはエラーとなります。token_for_business
によって返される値はIDではなくトークンです。したがって、直接この値を使ってグラフAPIからユーザーの情報にアクセスすることはできません。ユーザーの情報を入手するには、依然としてIDをデータベースに保存し、そのIDを使ってグラフAPIを呼び出す必要があります。利便性を考慮し、token_for_business
フィールドはすべてのAPIバージョンで利用できます
signed_request
オブジェクトのtoken_for_business
プロパティキャンバス表示されるアプリで複数のアプリ間のユーザーマッピングを簡単に行えるようにするため、アプリがビジネスマネージャに関連付けされていて、かつユーザーがアプリにログインしたことがあれば、読み込み時にキャンバスアプリに渡されるsigned_request
を介してtoken_for_business
フィールドが追加され、アプリに渡されます。例:
{ "algorithm": "HMAC-SHA256", "expires": 1414263600, "issued_at": 1414257389, "oauth_token": "CAAGEkq9GMZAkBAFnvvQ3M6msZBKITLa1gVZBVdnLTdJue2QeV6fMKRXn4G6fcEZB5ZAJyg3z6HdaKOJCCMJ1l9YFWmN4hq6nNnx77f9O7SYhsnPcJ6iH79xjFwqhrALgieDp7GiziMy5Y3Mol6RzHvCM5ceqQe9ZAijvrWZB5hEIwphbMQKEwZA4ZBozXP3NJgEZA3nZCMTTtvleWpxfmqIqO5XwxneCZBsZC4", "token_for_business": "AbwoGqummPbF3zp_", "user_id": "10154418713995634" }
token_for_business
フィールドの値は、たとえば/me?fields=token_for_business
を使ってUser
ノードで直接クエリした場合と同じ値となります。所有するビジネスが変わった場合も同じルールが適用され、token_for_business
の値が変わります。
アプリがビジネスマネージャに関連付けされていない、またはユーザーがアプリにログインしたことがない場合は、signed_request
オブジェクト内にtoken_for_business
プロパティは表示されません。
ids_for_business
エッジUser
ノードのids_for_business
エッジを呼び出すことで、マッピングされたビジネスIDを取得します。応答としてオブジェクトの配列が返されます。これらの各オブジェクトは、呼び出し側のアプリと同じビジネスに関連付けられ、かつユーザーがログインしたことがあるアプリを表しています。
GET /me/ids_for_business
応答の例:
{ "data": [ { "id": "10153949089790582", "app": { "name": "Business's App 1", "namespace": "business_app_1", "id": "647733625268125" } }, { "id": "605665581", "app": { "name": "Business's App 2", "namespace": "business_app_2", "id": "370612223054807" } }, { "id": "10154053730190582", "app": { "name": "Business's App 3", "namespace": "business_app_3", "id": "194890427204075" } } ] }
APIがデータを返すには、API呼び出しを行うアプリと同じビジネスに関連付けられた1つ以上のアプリに、ユーザーがログインしたことがなければなりません。たとえば、ユーザーが同じビジネスに関連付けられた5つのアプリのうち3つにログインしたことがある場合、APIは3つのオブジェクトを返します。
いいえ。ビジネスマッピングAPIは、複数のFacebookアプリを運用しているビジネスが、アプリ間で同じユーザーのIDをマッピングする必要がある場合にのみ有効です。メインのアプリを1つ所有している場合、ビジネスマッピングAPIの使用が必要になる可能性が低いため、ビジネスの設定やアプリとビジネスの関連付けを行う必要はありません。
ビジネスマネージャは、企業や代理店がFacebookページ、広告アカウント、アプリ、支払い方法を一元管理できるようにするツールです。ビジネスマネージャについて詳しくはこちら。
ビジネスマッピングAPIを使用する必要がないのであれば、現時点でビジネスを設定することは推奨しません。ビジネスは企業のメインのFacebookページにリンクする必要があるため、Facebookでビジネスを設定するにあたっての適任者は、通常、会社内でFacebook広告アカウントおよびページへのアクセス許可の管理を担当している方です。担当者様によってすでにビジネスが設定されている場合には、そのビジネスに自由にアプリを関連付けることができます。
いいえ。1つのアプリを一度に関連付けられるビジネスの数は1つのみです。
はい。まず、現在関連付けられているビジネスからアプリを削除する必要があります。この削除操作はビジネスマネージャで行えます。ビジネス設定の[アプリケーション]タブに移動し、アプリを選択して、[削除]をクリックします。その後、アプリを新しいビジネスに関連付けます。