簡體   English   中英

通過推薦進行Facebook畫布身份驗證

[英]Facebook canvas authentication by referral

我已經被這個問題困擾了一段時間了,今天我才放棄了,我意識到我真的很需要幫助,而我找不到解決類似問題的任何帖子。

我正在嘗試創建一個Facebook應用(自2012年1月1日起-萬一發生任何標准更改,你們可以告訴我),並且我已經正確設置了我的畫布網址。

因此,當您現在在Facebook上訪問我的應用程序時,如apps.facebook.com/canvas-page,您可以看到我的應用程序。 但是我在身份驗證方面遇到問題。

我的應用程序需要基本信息,以及嘗試訪問它的用戶的電子郵件地址。

到目前為止,我已經進行了設置,以便新用戶可以看到身份驗證對話框,然后訪問我的應用程序。 訪問我的應用程序時,我希望我的應用程序能夠訪問如上所述的信息。 但是,在我的畫布頁面上,我對php中的代碼做了以下操作,除此之外,我希望能夠看到通過身份驗證對話框中的facebook引用將哪些信息傳遞給我的應用程序:

    <?php 
    print_r($_GET);
    echo "\n";
    print_r($_POST);
    ?>

但是可悲的是,這給了我空數組,沒有別的。

我的Facebook應用程序真正需要的只是access_token和用戶ID,盡管我非常確定我可以通過訪問graph.facebook.com/me?access_token= [從某處提供的訪問令牌]來訪問當前用戶的ID。

因此,這是我的第一個問題,第二個問題是,當我注銷Facebook並訪問apps.facebook.com/canvas-page時,沒有提示我登錄,為什么會這樣? 我是否必須使用JavaScript重定向到Facebook才能登錄,然后引用我的應用程序?

目前,這些是我的設置(向我詢問更多信息,以便我可以將其提供給您)設置>身份驗證對話框>身份驗證的引薦>用戶和朋友權限=電子郵件設置>身份驗證對話框>身份驗證的引薦> Auth令牌參數=?code =

設置>高級>遷移=全部啟用

FB使用簽名請求將數據發送到您的應用程序(不是$ _POST,不是$ _GET)。 Sample Canvas應用程序中有一章稱為signed_request Parameter

使用php-sdk可以像這樣獲得它:

$signed_request = $facebook->getSignedRequest();

var_dump($signed_request);

array (
  'algorithm' => 'HMAC-SHA256',
  'expires' => 1326632400,
  'issued_at' => 1326628636,
  'oauth_token' => '***',
  'page' => 
  array (
    'id' => '***',
    'liked' => false,
    'admin' => true,
  ),
  'user' => 
  array (
    'country' => 'cl',
    'locale' => 'en_US',
    'age' => 
    array (
      'min' => 21,
    ),
  ),
  'user_id' => '***',
)

此外,您可以通過URL傳遞一個名為app_data的參數:

"http://www.facebook.com/YourPage?v=app_1234567890&app_data=any_string_here"

您也將在$signed_request得到它。

...
array (
  'algorithm' => 'HMAC-SHA256',
  'app_data' => 'any_string_here',
  'expires' => 1326636000,
  'issued_at' => 1326629411,
...

請評論! 謝謝。-

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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