facebook - 没有获得最近更改的完整好友列表(app范围的用户ID可能是)

时间:2014-05-03 20:24:16

标签: django facebook facebook-graph-api

我正在处理的当前代码,出于某种原因,当我这样做时

https://graph.facebook.com/me?access_token=access_token  (accesstoken from callback response)

返回id:某个号码不是我真正的facebook用户ID。它还提供链接:

https://www.facebook.com/app_scoped_user_id/<number>

如果我使用来自facebook的访问令牌工具的访问令牌,它将返回我的实际用户ID。

另外,我记得,我工作的旧应用程序,它们只返回实际的用户ID,而不是在这里发生什么。

关于朋友:

使用来自访问令牌工具的访问令牌,我正在获得完整的朋友列表。但是使用应用程序中的令牌,我只有一个朋友(我最近添加了)。没有得到发生的事情。

3 个答案:

答案 0 :(得分:13)

我已经对可访问的内容进行了相当广泛的测试,而不是因为我昨晚意识到这些变化。即使您获得了用户的朋友,您也将无法再检索用户朋友的有用信息。您将无法访问朋友的相册和照片,因此访问可标记的朋友是没有用的,因为您的应用程序再也不能“像用户一样行事”了。您还应该注意到一些FQL表已经用v2.0,即location_posts(我也打赌也是如此)。一些字段也被“取消”,例如mutual_friends_count。您需要测试所有内容,以确保已更改的内容,因为许多差异未记录在案。

如果您已经在v1.0上运行了应用,请注意v1.0将于2015年4月完全弃用。

虽然我理解FB想要取消用于保护用户隐私的整个模仿,但它选择通过完全关闭许多应用开发者选择与Facebook集成的原因来实现这一目标 - 因为他们可以在他们的应用中利用Facebook的数据用户会感兴趣。对于第三方应用程序,它只不过是一个免费的OAuth服务给我,因为就我所知,社交方面基本上已经全部消失了。

我希望知识渊博的各方能够对使用v2.0的FB集成仍然“社交”的内容进行说明吗?我现在处于发展的早期阶段,现在我觉得我可能会完全放弃FB,但以防万一我不知道的事情。

答案 1 :(得分:7)

Fosco和CBroe是正确的。您只能获得已使用该应用的朋友。它在Facebook upgrading doc中从图API的v1.0到v2.0中提到。它发生在4月30日。

  

/me/friends会返回正在使用您的应用的用户

     

在v2.0中,朋友API端点返回正在使用您的应用的朋友的列表。在v1.0中,回复包括了所有人的朋友。

     

有两个关键用例,应用程序需要访问非应用程序的朋友:标记和邀请。在v2.0中,我们添加了Taggable Friends APIInvitable Friends API来支持这些流程。

     

一个人登录Facebook登录v2.0后,调用/v1.0/me/friends和/ v2.0 / me / friends`都会导致v2.0行为 - 两个调用都将返回也使用该应用程序的朋友的一组。

因此,这意味着如果您需要完整列表,则只需使用TaggableInvitable API。不幸的是,Invitable仅适用于FB Canvas游戏,Taggable需要通过FB审核才能进行测试,这可能需要1-2周,而且您需要提供有关您的应用和为什么需要这些功能的理由。即使您设法访问Taggable API,也只能获取用户的名称和图片。

FB破坏了一切。依赖于这些关键功能的开发人员(像我一样)已经毁了。也许(又一个)表明没有人应该依赖FB?我想听听有关这方面的一些想法。

答案 2 :(得分:6)

截至2014年4月30日,应用只能使用该应用获取好友列表,您必须请求user_friends权限。此外,在2014年4月30日之前从未登录过您应用的用户将获得app_scoped_id,而不是真正的脸谱ID。