2012-05-30 52 views
3

我想知道Facebook PHP SDK是否是最新的Facebook服務器端身份驗證(https://developers.facebook.com/docs/authentication/server-side/)Facebook PHP SDK

當FB傳遞迴我的狀態和代碼時,我很難獲得access_token。 我是否打算以編程方式添加此功能?還是SDK意味着處理來自Facebook的響應?

例如:

我通過FB:

https://www.facebook.com/dialog/oauth?client_id=1234567890&redirect_uri=http%3A%2F%2Flocalhost%2F&state=ef8dba2dc8b4fa002973ffa5e29c67cb 

返回實:

http://localhost/?state=ef8dba2dc8b4fa002973ffa5e29c67cb&code=AQAhuVUqufbghj2bBLcCr5SdRJopdYaR-vAoZJzilvvDgiGYNuEPVKTRLqD9p9MPrPhIIubYPH0aka8RtBQU_vSGdkCI5DkQxhQpwWcADu1_jSQgOC9vBsF2oWardpcPcq4PzmNq-JYhdvEFyMD0K7vPY0WioUgLghhw28FJAhHis9K7dz6HyrNy0YXfjbK0AN0#_=_ 

然而SDK無法處理上述來自Facebook此響應。 Facebook建議您通過傳回代碼來獲取並訪問令牌。

  1. 交易所用戶訪問令牌

一旦用戶授權您的應用程序的代碼,你應該做一個服務器端請求交換上面的代碼對用戶訪問令牌返回。

https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID 
&redirect_uri=YOUR_REDIRECT_URI 
&client_secret=YOUR_APP_SECRET 
&code=CODE_GENERATED_BY_FACEBOOK 

SDK本身沒有這樣做嗎?

+0

我想獲得一個訪問令牌,你需要先登錄,並按照AUTH對話的蹤跡,讓您做出適當權限的應用程序,但你也可以使用圖形API瀏覽器,並給自己一個訪問令牌,如果你只是爲了開發目的需要它 - https://developers.facebook.com/tools/explorer/ – martincarlin87

回答

0

試試這個:

$user = $facebook->getUser(); 

$url = $facebook->getLoginUrl(array(

      'scope'   => 'email,publish_stream,publish_actions', 

      'redirect_uri' => 'login.php', //give ur apropriate page 

    )); 


if($user){ 

    $acestokn = $facebook -> getaccesstoken(); 

}else{ 

    header('location:'.$url); 
      exit; 
}