当我运行此代码时,我的cookie已被清除,我没有登录Facebook。它将我定向到 facebook 并登录,但当它带我回到我的页面时,它是相同的,它应该向我显示个人资料图片等等......
我似乎缩小了$user的返回语句的问题,因为它返回 0。我已经盯着这段代码很长时间了,我没有发现我做错了什么。
我需要更改什么才能获得它,以便当我从 facebook 登录返回时,它将显示个人资料图片等等......
<?php
require_once 'libs/facebook.php';
require 'connections/connection.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxx',
));
// Get User ID
$user = $facebook->getUser();
echo $user;
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
echo $user;
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
//$logoutUrl = $facebook->getLogoutUrl();
$logoutUrl = $facebook->getLogoutUrl(array('next' => ($fbconfig['baseurl'] . 'logout.php')));
} else {
$statusUrl = $facebook->getLoginStatusUrl();
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'user_about_me',
'scope' => 'read_friendlists'
));
}
?>
不用担心,我的朋友,你没有做错任何事。我的 DEMO 应用程序遇到了同样的问题,该应用程序直到昨天都运行良好。
我相信您在获取访问令牌时也遇到问题。我认为问题只出在 PHP SDK 上。所以可能会在一段时间内修复。
解决方案 : 在尝试了许多解决此问题的解决方案后,这对我有用。
在base_facebook.php文件中,找到 makeRequest() 方法并检查以下行。
$opts = self::$CURL_OPTS;
紧跟在它之后,添加此行
$opts[CURLOPT_SSL_VERIFYPEER] = false;
更多细节可以在这里找到 - http://net.tutsplus.com/tutorials/php/how-to-authenticate-your-users-with-facebook-connect/