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