簡體   English   中英

PHP facebook SDK中的過期授權碼

[英]Expired authorization code in PHP facebook SDK

我正在使用新的4. * facebook php SDK,我遇到了問題! ;)

基本上我試圖找到一種方法來在第一次重定向后向圖形api發出請求,當用戶登錄到Facebook后將發送回我的網站 在那種情況下,我(在我的index.php ):

$h = FacebookRedirectLoginHelper("blablabla");
$request = new FacebookRequest($h->getSessionFromRedirect(), 'GET', '/me');
$me = $request->execute()->getGraphObject();

它工作得很好,我可以打印有關已登錄用戶的日期。

我的問題是,如果我重新加載(f5)頁面index.php然后我得到一個例外:

Fatal error: Uncaught exception 'Facebook\FacebookAuthorizationException' with message 'This authorization code has expired.' in /home/nourdine/development/faisbuk/vendor/facebook/php-sdk-v4/src/Facebook/FacebookRequestException.php:87 

所以我的問題是:我應該在哪里獲得一個新的授權代碼,以便與經過身份驗證的用戶進行新的圖形api調用,即使在Facebook登錄過程中未執行的頁面也是如此?

謝謝

您不需要新的授權碼。 你需要的是使用相同的會話。 $h->getSessionFromRedirect()返回一個會話。 你想在下次使用的那個會話。

具體來說,這段代碼是需要實現的:

    // see if we have a session in $_Session[]
if( isset($_SESSION['token']))
{
    // We have a token, is it valid? 
    $session = new FacebookSession($_SESSION['token']); 
    try
    {
        $session->Validate($appid ,$secret);
    }
    catch( FacebookAuthorizationException $ex)
    {
        // Session is not valid any more, get a new one.
        $session ='';
    }
}

此頁面提供了完整的工作示例:適用於PHP的Facebook SDK 4.0.0:用於管理會話的工作示例

暫無
暫無

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

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