[英]Incorporating facebook login, using facebook php-sdk (v.3.0.0), with sessions and cookies
我是PHP的新手,並且很難理解facebook登錄系統。
我從github下載了三個src /文件(https://github.com/facebook/php-sdk/)。 我嘗試使用example.php文件讓我開始。 但是,我不知道該怎么做。
對於那些不熟悉該文件的人,這里有一個example.php的副本,刪除了一些樣式:
require '../src/facebook.php';
$facebook = new Facebook(array(
'appId' => '...',
'secret' => '...',
));
$user = $facebook->getUser();
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');
?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<body>
<?php if ($user): ?>
<a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php else: ?>
<div>
Login using OAuth 2.0 handled by the PHP SDK:
<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']; ?>
</body>
</html>
以下是我對此提出的問題:
1)餅干怎么樣? - 我希望用戶能夠在重新打開瀏覽器后登錄我的網站。
2)我需要離開這個example.php文件以確認/注冊用戶,開始會話,將會話存儲在cookie中,獲取用戶的fb用戶ID,fb名稱,fb圖片和fb好友列表?
3)在src / files中,有一個'file fb_ca_chain_bundle.crt',我完全不熟悉這樣的文件,我不確定是否有必要。 它的目的是什么?
4) $naitik = $facebook->api('/naitik');
是“naitik”這個人的用戶名 - 所以如果我輸入facebook.com/naitik它會顯示他的公開個人資料? 用“/ me”取代“/ naitik”將獲得登錄Facebook的人的公開資料?
5)如何獲取訪問令牌,以及如何在我的代碼中使用它?
6)當我為用戶創建會話和cookie以便用戶在重新打開瀏覽器后登錄時,我應該在我的會話和cookie中存儲什么?
我知道這是很多問題,但是我已經在網上瀏覽了很多教程,並且沒有一個能夠很好地解釋這個問題,主要是因為它們只是鏈接回Github PHP-SDK文件。 此外,他們中的大多數都解釋了以前版本的PHP-SDK。 如有任何問題,歡迎任何幫助。
回答你的問題
1)餅干怎么樣?
您只需在Facebook初始化中添加一個參數即可。 將其更改為以下內容
$facebook = new Facebook(array(
'appId' => '...',
'secret' => '...',
'cookie' => true,
));
2)我需要從這個example.php文件中刪除最少的內容是什么....
在這個例子中,並非你想要的一切。 代碼的上半部分顯示了如何連接和驗證用戶。 下半場只是拋棄了他們的基本細節和naitik的細節。 其余的你需要進一步了解。
3)在src / files中,有一個'file fb_ca_chain_bundle.crt'
此文件的目的是為CURL錯誤60提供一種解決方法。閱讀:
http://www.takwing.idv.hk/blog/2011/php-sdk-demystified-%E2%80%93-how-curl-error-60-is-handled/
4)$ naitik = $ facebook-> api('/ naitik')行; 是“naitik”這個人的用戶名 - 所以如果我輸入facebook.com/naitik它會顯示他的公開個人資料? 用“/ me”取代“/ naitik”將獲得登錄Facebook的人的公開資料?
非常正確
5)如何獲取訪問令牌,以及如何在我的代碼中使用它?
$ facebook-> getAccessToken();
您可以添加一些方法調用,但並不是所有方法都需要。
6)當我為用戶創建會話和cookie以便用戶在重新打開瀏覽器后登錄時,我應該在我的會話和cookie中存儲什么?
Facebook SDk將會解決這個問題。 您只需要存儲有關您的應用程序所需用戶的任何額外信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.