用户个人主页 API

借助用户个人主页 API,您可以使用公共主页范围编号 (PSID) 检索用户个人主页信息,并使用该信息打造用户与您的 Messenger 互动的个性化体验。

可用性

要检索用户的个人主页信息,您必须获得对业务资产用户个人主页访问权限功能的高级访问级别。访问某些字段还需获得更多权限

尽管 PSID 可能有效,但在某些情况下,它可能无法用于检索用户的个人主页信息。例如,无法通过用户个人主页 API 访问小游戏公共主页相关的 PSID。

用户订阅

以下事件将授权您的 Messenger 智能助手访问用户的个人主页信息:

  • 用户通过在欢迎页面轻触“立即开始”按钮,开始对话。
  • 用户通过点击“发送到 Messenger”按钮开始对话。
  • 用户通过发送一条消息开始对话。
  • 用户通过接受公共主页的消息请求开始对话。
  • 您的 Messenger 智能助手使用网页视图中 Messenger 功能插件 SDK 的 askPermission() 函数,请求获得 user_profile 权限。
  • 对于业务应用,还需要使用业务资产用户个人主页访问权限功能,该功能可通过应用审核进行申请。

有些接入点允许应用发起对话,无需获得应用授权即可访问用户的公开资料。在这种情况下,用户回复第一条消息后,该应用便获得访问该用户个人主页的权限。值得注意的是,用户可能会发起与应用的对话,但不授权应用访问个人主页的权限。这些情况包括:

不可用的个人主页

对于使用手机号创建的 Messenger 帐户,用户个人主页 API 目前不支持检索此类帐户的个人主页信息。

在这种情况下,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"
  }
}

如果此应用无法访问此用户的个人主页,系统将返回一个空对象。