我在我自己的页面上,我是管理员,我已经“喜欢”这个问题了,但这段代码:
require_once "api/facebook.php";
$facebook = new Facebook(array(
'appId' => APP_ID,
'secret' => SECRET,
'cookie' => true
));
$signedrequest = $facebook->getSignedRequest();
$uid = $facebook->getUser();
给我这个数据:
### USER ID ###
0
### SIGNED REQUEST ###
Array
(
[algorithm] => HMAC-SHA256
[issued_at] => 1330166798
[page] => Array
(
[id] => 304887859549216
[liked] => 1
[admin] => 1
)
[user] => Array
(
[country] => us
[locale] => en_US
[age] => Array
(
[min] => 21
)
)
)
因此,getUser()= 0和签名请求中的用户ID - 为空。 我做错了什么?
答案 0 :(得分:1)
默认情况下,“用户”是页面,这样您就可以显示与您的应用相关的页面内容。要确定用户是谁,您可以浏览标准后端重定向,就像用户来到您的应用程序而没有会话/过期令牌一样。但是你需要记住你所在的页面,因为Facebook只在初始iframe加载时传递了这些信息。
为了获得更好的用户体验,我会使用Facebook javascript SDK。您可以检查javascript中的所有内容,并确定用户是谁而不执行任何重定向。您甚至可以在不重新加载页面的情况下提示授权。如果用户已经授权您的应用,他们看不到任何更改并且没有提示,但您现在与该用户进行“会话”并在javascript中知道他们的ID。
https://developers.facebook.com/docs/reference/javascript/FB.login/
答案 1 :(得分:0)
对于getUser,您需要登录您的应用程序,显示登录/权限对话框
答案 2 :(得分:0)
只是为了添加到此,您目前无法获得javascript SDK中的所有内容。它没有为您提供PHP SDK所做的任何用户或页面(页面选项卡)数据。