Facebook返回ID和me.name

时间:2012-10-08 17:13:40

标签: perl facebook-graph-api

我真的迷失了Facebook API的这两个问题......

所有一直在用户墙上工作得很好,但我有一个页面的客户端。该页面是从头开始创建的,而不是通过自己作为用户创建的 - 即他们没有登录并创建他们刚刚从Facebook欢迎屏幕>创建页面开始的页面。

然而,页面工作正常,

1)我们的系统正在通过API提交帖子并从Facebook收到一个ID(例如{“id”:“123456_123456”} - 这告诉我facebook已经接受了它并且给了我一个帖子的ID

然而,该帖子并未出现在与其相关的页面上(我已经检查了它提交到的位置,并且它是正确的用户ID)。该系统一直适用于所有其他用户。

2)当通过Javascript为这个用户登录时,我们得到“me.name”的空值(我们得到me.email等,只是没有名字)

这一切正常吗,或者页面是否有不同的发布和检索数据的技术?

2 个答案:

答案 0 :(得分:2)

电子邮件是Facebook用户的私人数据,这是您遇到的许可问题

获取用户电子邮件地址的唯一方法是在电子邮件字段上请求扩展权限。

登录后。

这就是facebook api的工作原理,w.r.t透露其用户的私人数据

答案 1 :(得分:0)

好的我解决了这个问题,我不怀疑这里的任何人的能力 - 也许我的问题仍被误解......

现有用户尚未创建页面的某些Facebook页面(尤其是商业页面)与Facebook组和用户页面不同。您不能只使用短期长期访问令牌提交。

您必须首先使用您的令牌将Facebook称为http://graph.facebook.com/ID_OF_PAGE/accounts

Facebook返回一个页面列表,每个页面都有自己的唯一ID和每个页面的标记。

然后您获取所需页面的令牌,然后使用页面ID和页面OWN令牌重新提交 - 并且它会发布到它!

我发现他们仍然是Facebook的漏洞。它在我为客户创建的一个商业页面上说“使用Facebook作为”。 - 即在“。”之前缺少名称。 - 它应该说“使用Facebook作为MYNAME。”

这引入了JS FB.login的另一个问题,因为该人的名称返回undefined。我不得不验证他们的电子邮件 - 其他方面它说“你登录为。”

我认为它是因为FB允许你从头开始创建一个页面,作为一个新用户,而不是自己登录 - 然后一些值没有被设置而且它会混乱。

也许可以帮助别人......