我希望我的網站上的用戶能夠使用他們現有的Facebook帳戶登錄。添加Facebook登錄到自己的網站
我已經從developers.facebook.com下載了Facebook PHP SDK併爲我的網站設置了一個應用程序。我剛剛使用了與SDK捆綁在一起的example.php文件,並將我的應用的'appID'和'secret'換成了數字。
注:在代碼 'APPID' 和 '祕密' 要更換實際相當於
我這是我的頭:
require 'src/facebook.php';
(這肯定是被人發現)
這是主頁上的代碼,其中登錄將是(也來自example.php):
<?php
$facebook = new Facebook(array(
'appId' => 'appID',
'secret' => 'secret',
));
var_dump($facebook);
// Get User ID
$user = $facebook->getUser();
echo "<br />";
var_dump($user);
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
$naitik = $facebook->api('/naitik');
?>
<?php var_dump($user); ?>
<h1>php-sdk</h1>
<?php if ($user): ?>
<a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php else: ?>
<?php echo "LoginURL:"; var_dump($loginUrl);?>
<div>
<a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
</div>
<?php endif ?>
<h3>PHP Session</h3>
<pre><?php print_r($_SESSION); ?></pre>
<?php if ($user): ?>
<h3>You</h3>
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture">
<h3>Your User Object (/me)</h3>
<pre><?php print_r($user_profile); ?></pre>
<?php else: ?>
<strong><em>You are not Connected.</em></strong>
<?php endif ?>
<h3>Public profile of Naitik</h3>
<img src="https://graph.facebook.com/naitik/picture">
<?php echo $naitik['name']; ?>
當我不登錄到Facebook上,並點擊鏈接,就帶我到一個Facebook登錄頁面。登錄後,它會通過url中的新變量(狀態,代碼等)重定向回主站點。一旦「登錄」,var_dump($user)
只是返回int(0)
。
任何人都可以指出我在正確的方向嗎?我不知道爲什麼它不能分配用戶。
傾銷$facebook
的結果:
object(Facebook)#182 (9) {
["sharedSessionID:protected"]=> NULL
["appId:protected"]=> string(15) "appID"
["appSecret:protected"]=> string(32) "secret"
["user:protected"]=> NULL ["signedRequest:protected"]=> NULL
["state:protected"]=> NULL ["accessToken:protected"]=> NULL
["fileUploadSupport:protected"]=> bool(false)
["trustForwarded:protected"]=> bool(false)
}
感謝您的回覆。當我從我的站點導航到fbaccess.php並且'var_dump($ user)'測試用戶是否連接,但是當我在我的站點中包含fbaccess.php時var_dump($ user)''返回0.我想這個問題可能是由於我的網站是一個WordPress站點。 Wordpress使用某種類型的'mod_rewrite',它刪除'/ index。PHP的URL,所以我的facebook應用程序的site_url不準確。我的情況是獨特的,我主要使用wordpress發佈功能,網站的其餘部分是我自己的編碼/數據庫(我不使用後循環或頁面佈局)。 – iRector
然後你可以使用Facebook或社交登錄插件。嘗試使用http://wordpress.org/extend/plugins/loginradius-for-wordpress/進行Facebook登錄。 –