如何让用户使用他们的Facebook帐户登录我的网站?
问题描述:
我使用SDK php让用户使用他们的Facebook帐户登录我的网站。我正在关注SDK示例。当我试图让登录的用户ID返回0:如何让用户使用他们的Facebook帐户登录我的网站?
$id = $facebook->getUser();
你能告诉我是什么问题,以及如何使用PHP SDK工作
的例子是这样的代码例如:
<?php
$config = FacebookConfig::getConfig();
$facebook = new Facebook($config);
$user = $facebook->getUser();
Facebook::$CURL_OPTS[ CURLOPT_SSL_VERIFYPEER ] = false;
if ($user) {
try {
$user_profile = $facebook->api('/me');
$logoutUrl = $facebook->getLogoutUrl();
}
catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
} else {
try {
$loginUrl = $facebook->getLoginUrl(array(
"scope" => "email,user_education_history,user_work_history",
"redirect_uri" => "http://localhost:8888/www/index.php"
));
$user = $facebook->getUser();
$user_profile = $facebook->api('/me');
$userProf = $facebook->api("/$user");
echo $user;
echo $user_profile;
}
catch (FacebookApiException $e) {
$user = null;
echo "expetion in login";
}
}
?>
答
您必须将用户重定向到$loginUrl
!试试这个:
<?php
$config = FacebookConfig::getConfig();
$facebook = new Facebook($config);
$user = $facebook->getUser();
Facebook::$CURL_OPTS[ CURLOPT_SSL_VERIFYPEER ] = false;
if ($user) {
try {
$user_profile = $facebook->api('/me');
var_dump($user_profile);
$logoutUrl = $facebook->getLogoutUrl();
}
catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
} else {
try {
$loginUrl = $facebook->getLoginUrl(array(
"scope" => "email,user_education_history,user_work_history",
"redirect_uri" => "http://localhost/facebook/index.php"
));
header('Location: '.$loginUrl);
}
catch (FacebookApiException $e) {
$user = null;
echo "exception in login";
}
}
其实你应该告诉我们是什么问题?并且可能'redirect_uri'不会在这里工作,因为你正在本地服务器上运行它。 – 2013-03-05 14:13:32
问题是即使当我登录功能getUser()返回0,不用担心重定向它效果不错 – user1028 2013-03-05 14:18:53