Facebook graph api 使用Messenger PageScope访问图形API

Facebook graph api 使用Messenger PageScope访问图形API,facebook-graph-api,bots,facebook-messenger,Facebook Graph Api,Bots,Facebook Messenger,最近,我一直在测试messenger平台。 到目前为止,一切都很好,但我想获得更多关于用户的信息,而不仅仅是基本的个人资料信息。 当用户通过Messenger与您交谈时,您会得到一个特定的用户ID,据我所知,该用户ID不仅是页面范围的,而且是Messenger范围的。 在中,有一个调用用户配置文件API的示例,如下所示: curl -X GET "https://graph.facebook.com/v2.6/<USER_ID>?fields=first_name,last_name

最近,我一直在测试messenger平台。 到目前为止,一切都很好,但我想获得更多关于用户的信息,而不仅仅是基本的个人资料信息。 当用户通过Messenger与您交谈时,您会得到一个特定的用户ID,据我所知,该用户ID不仅是页面范围的,而且是Messenger范围的。 在中,有一个调用用户配置文件API的示例,如下所示:

curl -X GET "https://graph.facebook.com/v2.6/<USER_ID>?fields=first_name,last_name,profile_pic,locale,timezone,gender&amp;access_token=<PAGE_ACCESS_TOKEN>"
我不经常使用graph api,这可能是因为我的页面仍在开发中,没有“approved items”类别的权限吗?
有没有办法将messenger范围的id链接到一个更简单的页面范围或应用程序范围的id,我可以使用它进行此类调用?可能使用自定义入口点?

您只能使用此特殊令牌访问公共\u配置文件字段。访问user events端点需要user_events权限,而且由于用户无需登录到您的应用程序即可向您发送消息页面,除了用户的public_profile字段之外,无法检索访问任何内容的权限。

是否有任何方法可以检查此messenger用户是否与已在别处验证我的应用程序的facebook用户相同?这有点迂回,但您可以从Graph API检索消息对象,该API具有实际的facebook用户id,然后使用它检索Facebook用户对象(也使用Graph API)。不过,您可能不希望依赖于此,我认为这是他们放置页面范围ID的原因。
curl -X GET "https://graph.facebook.com/v2.6/<USER_ID>/events?fields=id,name&amp;access_token=<PAGE_ACCESS_TOKEN>"
{
    message: '(#100) Tried accessing nonexisting field (events) on node type (MessengerPageScopedID)',
    type: 'OAuthException',
    code: 100,
    fbtrace_id: 'E+ramLeapT5'
}