我使用客戶端SDK登錄和服務器端PHP SDK'牆貼'使用圖形api觸發的行動(我用它與offline_access,但現在我知道其棄用)。Facebook擴展訪問令牌服務器端與客戶端登錄
如何獲得擴展的訪問令牌使用客戶端SDK,以便我可以使用在服務器端擴展的標記在服務器端,
我知道一些答案有喜歡here,但他們使用服務器端登錄並獲得$ _REQUEST ['code']的擴展令牌,他們得到的迴應,
我有什麼辦法可以使用客戶端登錄獲取$ _REQUEST ['code']的值嗎?
更新:
我的客戶端登錄代碼支持的OAuth:
FB.init({
appId : 'MYAPPID', // App ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
oauth : true // enable OAuth 2.0
});
FB.login(function() {
FB.api('/me', {'fields': "some coma seperated fields"},
function(response){
//Function that sends data to server
Pass_data_to_server(response);
});
}, scope:'some scope values');
服務器端代碼:
<?php
$settings = array
(
'appId' => FB_APP_ID,
'secret' => FB_APP_SECRET,
'cookie' => true,
'oauth' => true
);
// Get facebook object from facebook sdk class
$facebook = new Facebook($settings);
if ($facebook)
{
$user_id = $facebook->getUser();
$facebook->setExtendedAccessToken(); //long-live access_token 60 days
$token = $facebook->getAccessToken();
try
{
$response = $facebook->api('me/og.like', 'POST',{ $MYCUSTOMDATA});
return $response;
}
catch (FacebookApiException $e)
{
print_r($e)
return false;
}
}
?>
您是否在服務器端也有訪問令牌,考慮到您從服務器端發佈在用戶牆上的事實 –
@AnveshSaxena是的,我有一個訪問令牌,但是我可以發佈一次後很快就會過期,但是對於下一篇文章,它給了一個錯誤「必須使用一個活動的訪問令牌」 – Maddy