ユーザープロフィールAPI

ユーザープロフィールAPIで、Page-scoped ID (PSID)を使ってユーザープロフィール情報を取得できます。取得した情報を利用して、Messengerとやり取りする利用者のエクスペリエンスをパーソナライズできます。

利用条件

ユーザープロフィール情報を取得するには、ビジネスアセットユーザープロフィールアクセス機能に対するアドバンスアクセスが必要です。アクセスするために追加のアクセス許可が必要になるフィールドもあります。

PSIDが有効であっても、場合によっては個人のプロフィール情報の取得に使用できない場合があります。例えば、インスタントゲームページに関連付けられたPSIDは、ユーザープロフィールAPI経由ではアクセスできません。

ユーザーのオプトイン

次のイベントでは、個人のプロフィール情報へのMessengerボットのアクセスが認証されます。

エントリーポイントによっては、アプリに個人の公開プロフィールへのアクセス許可が付与されていなくても会話を開始できます。そのような場合、最初のメッセージに個人が返信した後、アプリにその人のプロフィールへのアクセス許可が付与されます。個人がアプリとの会話を開始するが、プロフィールアクセス許可を承認しないという注意すべき状況には、以下のようなものがあります。

プロフィールが利用不可の場合

現在、ユーザープロフィールAPIでは、電話番号を使って作成されたMessengerアカウントのプロフィール情報を取得できません。

この場合、APIはエラーコード2018218とメッセージ「このユーザーの利用可能なプロフィールはありません」を返します。

利用可能なプロフィールフィールド

必要な機能とアクセス許可のアプリレビュー承認を受けたアプリは、該当する情報を公開し、ページにオプトインしたユーザーについて次のフィールドを取得できます。

フィールド名説明アクセス許可

id

利用者のPSID

該当なし

name

利用者の氏名

該当なし

first_name

該当なし

last_name

該当なし

profile_pic

プロフィール写真

該当なし

locale

Facebookの利用者の言語

pages_user_locale

timezone

タイムゾーン。GMTとの時差

pages_user_timezone

gender

性別

pages_user_gender

ページのユーザーフィールドへの機能アクセスのリクエスト

  1. [ページ設定] > [高度なメッセージ]に移動します
  2. [人に関する情報]の下にあるフィールドを選択し、[リクエスト]ボタンをクリックします。

個人のプロフィールの取得

ユーザープロフィールAPIを使用するには、その人に関して取得したいプロフィールフィールドを指定してGETリクエストを送信してください。

curl -X GET "https://graph.facebook.com/<PSID>?fields=first_name,last_name,profile_pic&access_token=<PAGE_ACCESS_TOKEN>"

アプリがその人のプロフィールにアクセスできれば、ユーザープロフィールAPIから、そのプロフィールのリクエストされたフィールドのデータが入ったJSON文字列が返されます。

{
  "first_name": "Peter",
  "last_name": "Chang",
  "profile_pic": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xpf1/v/t1.0-1/p200x200/13055603_10105219398495383_8237637584159975445_n.jpg?oh=1d241d4b6d4dac50eaf9bb73288ea192&oe=57AF5C03&__gda__=1470213755_ab17c8c8e3a0a447fed3f272fa2179ce",
  "locale": "en_US",
  "timezone": -7,
  "gender": "male",
  "last_ad_referral": {
    "source": "ADS",
    "type": "OPEN_THREAD",
    "ad_id": "6045246247433"
  }
}

アプリがその人のプロフィールにアクセスできなければ、空のオブジェクトが返されます。