如何通过已知的应用范围用户 ID 访问 Facebook 用户页面

Posted

技术标签:

【中文标题】如何通过已知的应用范围用户 ID 访问 Facebook 用户页面【英文标题】:How to get to Facebook User Page by a known app scoped User ID 【发布时间】:2018-04-19 13:37:47 【问题描述】:

直到今天,还有一些方法可以通过用户 ID 访问 Facebook 用户页面。我的意思是 ID,facebook API 返回到我们的应用程序:https://graph.facebook.com/10152384781676191?fields=link


  "link": "https://www.facebook.com/app_scoped_user_id/10152384781676191/",
  "id": "10152384781676191"

但是这些方法都不再起作用了:

https://www.facebook.com/app_scoped_user_id/10152384781676191 - 不起作用 https://facebook.com/profile.php?id=10152384781676191 - 不起作用 https://facebook.com/10152384781676191 - 不起作用

更新:似乎发生了以下情况:according to TechCrunch, malicious sites pulled data form public user profiles.

在 TechCrunch 发表文章后,Facebook 立即屏蔽了 Graph API 返回的 URL:graph.facebook.com/v2.11/user-id/?fields=link&access_token=access-token。他们“...正在制定额外的身份验证和速率限制...”。


任何 1) 快速解决方法和/或 2) 永久解决方案?

【问题讨论】:

developers.facebook.com/bugs/2054375031451090 如果您找到解决方案,请在此处添加。该 facebook 线程充斥着谈论个人资料图片和访问令牌的白痴。这与发布的原始错误无关。我没有耐心去关注这样的垃圾邮件。 目前还没有解决办法。同时,在同一天,图片 API 出现了一个类似但其他的问题。 Facebook 管理员关闭了与用户个人资料链接错误重复的所有图片错误报告。这就是为什么facebook线程被图片主题垃圾邮件的原因。虽然添加 &access_token= 参数解决了图片问题,但它对发布的原始错误没有帮助。 developers.facebook.com/blog/post/2018/04/19/… Facebook 现在只在获得许可后提供 Scoped-User 链接,并且只有当您是用户的朋友或用户本人时,此链接才会打开。我想知道的是,不能有人要求用户单击将访问该 url 的按钮,从而拉出实际的配置文件并将其保存给该用户吗?我希望我知道该怎么做! 【参考方案1】:

Facebook 有意在其 Graph API 中禁止了 link 属性。现在他们建议填写一份表格,以便单独审查每个案例。

表格:https://go.fb.com/2018-FB4D-platform-review-form.html

4月20日消息更新:Facebook Login Changes to Address Abuse

昨天我们注意到,网站上的一些第三方跟踪脚本直接访问 Facebook 公开资料。在调查此问题时,我们立即采取了以下措施:

禁用将 Facebook 登录返回的应用范围用户 ID (ASID) 解析到 Facebook 个人资料页面的功能,即使对于已登录的用户也是如此。 对个人资料图片请求实施速率限制,以进一步防止任何第三方尝试使用 Facebook Login 发布的特定于应用程序的标识符将人们在不同网站上的活动联系起来。

我们不会轻视重大更改,但我们相信这些更新将有助于保护人们的隐私并增加整个生态系统的信任。如果您有急需解决的问题,请填写此表格,我们团队的人员会与您联系。

感谢您在我们尽快解决此问题期间的耐心等待。

【讨论】:

以上是关于如何通过已知的应用范围用户 ID 访问 Facebook 用户页面的主要内容,如果未能解决你的问题,请参考以下文章

FB API 应用范围的用户 ID 禁止事件邀请

如何获取具有已知资源名称的资源 id?

如何通过 Cognito 用户 ID 限制访问 AWS API Gateway 端点

如何通过经过身份验证的 cognito 用户(用户池)快速访问 DynamoDB

如何在应用程序范围内创建可访问的上下文对象,以便在数据访问中存储当前用户

OOAuthException:必须使用活动访问令牌来查询有关当前用户的信息