【发布时间】:2014-01-22 19:07:36
【问题描述】:
以下代码应返回登录用户的电子邮件地址。
<?php
require_once('facebook-php-sdk/src/facebook.php');
// Create our Application instance (replace this with your appId and secret).
$facebook= new Facebook(array(
'appId' => '2453463636',
'secret' => '365653656565656',
'allowSignedRequest' => false,
));
$user = $facebook->getUser();
print_r($user);
if ($user) {
try {
// Get the user profile data you have permission to view
// $user_profile = $facebook->api('/me');
$user_profile = $facebook->api('/me?fields=picture.width(100).height(100),first_name,last_name,username,email');
echo $user_profile['email'];
} catch (FacebookApiException $e) {
$user = null;
error_log($e);
print_r($e);
}
} else {
die("failed");
}
?>
相反,它返回“失败”,而 print_r($user) 返回 0。
真的不知道该怎么办。
在仪表板中:
我已经建立了一个网站平台来查看我的应用程序。
jist:
“应用程序域” = www.app.com
“网站网址”=http://www.app.com/test
网站网址是实际的应用程序。我尝试在http://www.app.com/test/fbuser 等url 中访问getUser,它返回0 和die 子句。
我是不是设置错了?
编辑
Curl 在我的本地服务器上
“配置命令”也有很大不同(请参阅下面的 localhost 屏幕截图)
远程服务器信息在配置命令的这段文本中提到了“curl”
【问题讨论】:
-
如果您使用 FB 中的示例会发生什么:developers.facebook.com/docs/php/howto/profilewithgraphapi
-
我试过这个。 It brings up the link to login, even though I am logged in, and when I click it this is appended to the end of url in the address bar "?code=AQDJgFwlShcurgvYqmPfzlZANlAnilY8DxwYA5YS-Oh_tGURhgQO9vI5HHbEiLZJ7B0GC4VgO3zkslvwmVwmOglL-o1pZteNbb4a39VbdcTu6inLwD8sTHG3CFapzB-fYsPMTJfNv-MiAuAaYASo0z-TiIyYuzAaNqZsjSoH5GPoqn6ynZdXAyCCkyN9SqZv8Br9Aj73KLwFzSw3SNHzKAl5k75BvUwDUtDvKQc3V76L4oHk2s-LlCsBL_4_QBibvVvIIeGokvB473oiR002346UxDYe- 1cPvH2sAn_hHbk2B4GfRWijpMF8R2E744h7VfE&state=e17f5d8c1cfb47b357df6d5ff1eecca6#_=_",但页面保持不变
-
@Tobi 请参阅上面的编辑
-
这与您是否登录 www.facebook.com 无关,它与您是否已授予应用访问您信息的权限有关。您需要按照此处所述实现 OAuth 身份验证流程:developers.facebook.com/docs/facebook-login/…“?code=”部分可以交换为访问令牌,如下所示:developers.facebook.com/docs/facebook-login/…
-
您使用的是最新版本的FB PHP SDK吗?
标签: php facebook codeigniter facebook-php-sdk