我使用客户端sdk进行登录,使用服务器端php sdk使用图形api进行触发操作的“墙贴”(我使用它与offline_access,但现在我知道它已被弃用)。
如何使用客户端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;
}
}
?>
答案 0 :(得分:1)
您可以使用Facebook PHP SDK方法extend访问令牌
setExtendedAccessToken()
这将通过调用终点
自动扩展您的短期扩展访问令牌https://graph.facebook.com/oauth/access_token?
client_id=APP_ID&
client_secret=APP_SECRET&
grant_type=fb_exchange_token&
fb_exchange_token=EXISTING_ACCESS_TOKEN
然后,您可以保存此访问令牌以授权接下来60天的请求。