以下代码应返回登录用户的电子邮件地址。
<?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.
真的不知道该怎么做。
在仪表板中:
我已经设置了一个网站平台来查看我的应用。
这个小说:
“App Domains”= www.app.com
“网站网址”= http://www.app.com/test
网站网址实际上是应用。我尝试访问getUser
等网址中的http://www.app.com/test/fbuser
,其中返回0和die子句。
我说错了吗?
修改
我的localhost服务器上的卷曲
“配置命令”也完全不同(见下面的localhost屏幕截图)
远程服务器信息在配置命令
的此blob文本中提到“curl”答案 0 :(得分:3)
Codeigniter删除Facebook PHP SDK用于检索OAuth代码参数的$_REQUEST
。
修复方法是在致电$_GET
之前将$_REQUEST
复制到$facebook->getUser()
:
$_REQUEST += $_GET;
$user = $facebook->getUser();
感谢this SO回答。
答案 1 :(得分:0)
我在不同场合遇到过这个问题,但SDK问题并非发生在每个人身上。所以我不确定这里出了什么问题。但我稍微深入了解并找到了解决方案,如下所述。
解决方案:在为此问题尝试多种解决方案后,这对我有用。
在base_facebook.php文件中,找到makeRequest()方法并检查以下Line。
$opts = self::$CURL_OPTS;
紧接其后,添加此行
$opts[CURLOPT_SSL_VERIFYPEER] = false;
更多细节可以在这里找到 - http://net.tutsplus.com/tutorials/php/how-to-authenticate-your-users-with-facebook-connect/
尝试以下
if($user_id) {
// User is logged in do action here
} else {
// No user, print a link for the user to login
$login_url = $facebook->getLoginUrl();
echo 'Please <a href="' . $login_url . '">login.</a>';
}