从Facebook Graph API /用户获取"真实"个人资料网址

jch*_*ook 15 api rest facebook oauth

API文档中所述/user,该link字段包含用户的配置文件URL.但是,此网址通常会重定向到其他网址(即显示在Google搜索结果中的网址).

有没有办法通过Facebook API确定给定配置文件的最终重定向位置("真实"URL)?

例如,给定:

"link":"https://www.facebook.com/1091552020"

我想https://www.facebook.com/sbhutiani从API中检索

lus*_*chn 20

您不能再获得真实ID或用户名,因此无法获得"真实URL".更多信息:https://developers.facebook.com/docs/apps/changelog

您可以通过以下API调用获取用户配置文件的链接: /me?fields=link

查看Facebook文档中的"App Scoped IDs".

更新:似乎无法再链接到用户配置文件:https://developers.facebook.com/blog/post/2018/04/19/facebook-login-changes-address-abuse/

  • 在那里:/ me?fields = link - 通过此api调用,您将获得用户配置文件的链接. (3认同)
  • 你只需添加你想要的所有字段,用逗号分隔,就像你写的一样.你可以在api explorer中测试它:https://developers.facebook.com/tools/explorer/?method = GET&path = me%3Ffields%3Dlink&version = v2.10你如何使用它取决于sdk(如果你连使用任何sdk). (2认同)
  • 根据以下帖子,使用link参数获取配置文件URL不再有效:https://developers.facebook.com/blog/post/2018/04/19/facebook-login-changes-address-abuse/ as ASIDs由于滥用,目前尚未得到解决. (2认同)

ami*_*ena 5

看起来 Facebook 已经创建了一个单独的权限(用户需要批准),要求user_link您能够获取该权限。您可以在此处查看更多详细信息:https : //developers.facebook.com/docs/facebook-login/permissions/#reference-user_link

当您使用/me?metadata=1以下link描述查询有关端点可用字段的元数据时:

{
  "name": "link",
  "description": "A link to the person's Timeline. The link will only resolve if the person clicking the link is logged into Facebook and is a friend of the person whose profile is being viewed.",
  "type": "string"
}
Run Code Online (Sandbox Code Playgroud)

如果用户已批准该权限,您将能够像以前一样获取链接:

/me?fields=link

{
  "link": "https://www.facebook.com/app_scoped_user_id/SOME_TOKEN/",
  "id": "USER_ID"
}
Run Code Online (Sandbox Code Playgroud)