Facebook getUser返回错误的ID

时间:2011-12-13 17:43:41

标签: php facebook codeigniter sdk

我的应用中存在问题。我需要用户唯一的东西是facebook id。登录到Facebook后,他们会被重定向回我的应用程序,我可以使用$ facebook-> getUser()获取用户ID。除非用户在Facebook上选择了用户名,否则此工作正常。然后我得到一个与用户ID不同的非常奇怪的长ID。

为了澄清,假设我问用户没有设置用户名的用户ID,我得到例如id:1234567891。 当用户设置了用户名时,我会得到一个ID:100002339295322。

任何maby都知道如何解决这个问题?

如果您需要我如何做事的代码示例,我会按照facebook开发者网站上的说明进行操作:http://developers.facebook.com

带着友好的问候, 鲍勃

PS:我使用CodeIgniter框架和官方facebook php sdk

* ///编辑\ *

问题解决了。显然它与我用于该字段的数据类型有关。我将它从int更改为varchar,现在一切正常。

3 个答案:

答案 0 :(得分:5)

我遇到了类似的问题,并发现在v2.0 API之后,user_id是app范围。我有两个user_id用于同一个用户的个人资料但不同的应用程序,并且两者都适用于他们各自的应用程序。

您可以使用

访问用户个人资料
http://facebook.com/app_scoped_user_id/<USER_ID>

您还可以使用app令牌和应用范围的用户ID查询图表api。

参考:https://developers.facebook.com/docs/apps/upgrading/#upgrading_v2_0_user_ids

答案 1 :(得分:0)

并非所有Facebook用户都拥有用户名,但他们都拥有用户ID 。 (例如,可选择使用字母数字用户名,只需轻松访问 - facebook.com/johnsmith或smth)

您最好的选择是存储ID(大约10位数),如果您要存储名称,也可以存储像stackoverflow那样的名字。

答案 2 :(得分:0)

对于2014年5月1日之后到访的用户,测试应用现在默认使用v2 API,如果您的应用是使用v1构建的,则会导致问题。请参阅常见问题解答中的最后一篇文章https://developers.facebook.com/docs/apps/test-apps