ユーザープロフィールAPIで、Page-scoped ID (PSID)を使ってユーザープロフィール情報を取得できます。取得した情報を利用して、Messengerとやり取りする利用者のエクスペリエンスをパーソナライズできます。
ユーザープロフィール情報を取得するには、ビジネスアセットユーザープロフィールアクセス機能に対するアドバンスアクセスが必要です。アクセスするために追加のアクセス許可が必要になるフィールドもあります。
PSIDが有効であっても、場合によっては個人のプロフィール情報の取得に使用できない場合があります。例えば、インスタントゲームページに関連付けられたPSIDは、ユーザープロフィールAPI経由ではアクセスできません。
次のイベントでは、個人のプロフィール情報へのMessengerボットのアクセスが認証されます。
askPermission()
関数を使ってuser_profile
アクセス許可を要求した。エントリーポイントによっては、アプリに個人の公開プロフィールへのアクセス許可が付与されていなくても会話を開始できます。そのような場合、最初のメッセージに個人が返信した後、アプリにその人のプロフィールへのアクセス許可が付与されます。個人がアプリとの会話を開始するが、プロフィールアクセス許可を承認しないという注意すべき状況には、以下のようなものがあります。
現在、ユーザープロフィールAPIでは、電話番号を使って作成されたMessengerアカウントのプロフィール情報を取得できません。
この場合、APIはエラーコード2018218
とメッセージ「このユーザーの利用可能なプロフィールはありません」を返します。
必要な機能とアクセス許可のアプリレビュー承認を受けたアプリは、該当する情報を公開し、ページにオプトインしたユーザーについて次のフィールドを取得できます。
フィールド名 | 説明 | アクセス許可 |
---|---|---|
| 利用者のPSID | 該当なし |
| 利用者の氏名 | 該当なし |
| 名 | 該当なし |
| 姓 | 該当なし |
| プロフィール写真 | 該当なし |
| Facebookの利用者の言語 |
|
| タイムゾーン。GMTとの時差 |
|
| 性別 |
|
ユーザープロフィール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"
}
}
アプリがその人のプロフィールにアクセスできなければ、空のオブジェクトが返されます。