簡體   English   中英

使用facebook php-sdk(v.3.0.0)將facebook登錄與會話和cookie結合在一起

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM