Facebook Graph API对页面帐户返回false

时间:2011-02-23 01:06:06

标签: facebook facebook-graph-api

我正在尝试将facebook连接用于我的网站。 当我尝试以普通用户身份登录时,一切都很顺利,所有正确的信息都会回来。 但是,当我以“PAGE”帐户登录时,事情开始变得奇怪。 成功登录后,如果我使用以下内容: https://graph.facebook.com/me/?access_token= {访问令牌},我得到了“假”。 如果我改为将“我”替换为页面帐户的ID,那么我会得到正确的信息。

另一个问题是,登录后,fbs_appID会话cookie在成功登录“PAGE”帐户后设置了错误的“uid”。使用普通用户帐户一切都很顺利。

我页面上的所有设置均为“13+”,并且没有国家/地区限制。

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:1)

我们正在采取同样的行为。

如果在登录Facebook页面时登录,Facebook通常会显示一个对话框,上面写着“您无法以Facebook页面登录。切换到xxx用户”。

因此,您应始终在FB连接代码中获得常规用户。

但看起来有时候Facebook没有正确处理,并允许用户尝试以Facebook页面登录。然后,您获得的访问代码不允许您获取用户信息。

所以我认为你无能为力,只是警告用户他必须以常规用户Facebook个人资料登录。

这是我们获得的完整流量信息:(代码匿名):

GET /oauth/access_token?client_id=xxxxx&redirect_uri=xxxxx&client_secret=xxxx&code=xxx HTTP/1.1
Connection: close
Host: graph.facebook.com


HTTP/1.1 200 OK
Cache-Control: private, no-cache, no-store, must-revalidate
Content-Type: text/plain; charset=UTF-8
Expires: Sat, 01 Jan 2000 00:00:00 GMT
Pragma: no-cache
X-FB-Rev: 401390
X-FB-Server: 10.42.17.21
Connection: close
Date: Wed, 06 Jul 2011 10:38:11 GMT
Content-Length: 122

access_token=xxxx&expires=4909



GET /me?access_token=xxxx HTTP/1.1
Connection: close
Host: graph.facebook.com

HTTP/1.1 200 OK
Cache-Control: private, no-cache, no-store, must-revalidate
Content-Type: text/javascript; charset=UTF-8
ETag: \"7cb6efb98ba5972a9b5090dc2e517fe14d12cb04\"
Expires: Sat, 01 Jan 2000 00:00:00 GMT
P3P: CP=\"Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p\"
Pragma: no-cache
X-FB-Rev: 401390
Set-Cookie: datr=aTsUTlxHtaaaK67aCdYmQbCO; expires=Fri, 05-Jul-2013 10:39:37 GMT; path=/; domain=.facebook.com; httponly
X-FB-Server: 10.32.3.116
Connection: close
Date: Wed, 06 Jul 2011 10:39:37 GMT
Content-Length: 5

false

答案 1 :(得分:1)

我已从页面设置中删除了“默认”国家/地区限制,并且数据通过Graph API正常显示。很高兴知道它为什么会影响api请求。

答案 2 :(得分:-1)

我认为您的登录部分出了问题。

如果您使用的是Javascript SDK:

试试这个console.dir(FB.getSession());

如果您使用的是PHP SDK: 然后尝试:

$session = $facebook->getSession();
print_r($session);

如果你正在接受正确的会话,请检查控制台。

除非您已登录,否则

http://graph.facebook.com/me始终可用。它甚至不需要任何其他权限。

答案 3 :(得分:-3)

从页面设置中删除任何年龄和/或国家/地区限制。