我想知道 Facebook PHP SDK 在 Facebook 服务器端身份验证方面是否是最新的 (https://developers.facebook.com/docs/authentication/server-side/)
当 FB 传回我的状态和代码时,我很难获得 access_token。 我打算以编程方式添加此功能吗?还是 SDK 旨在处理来自 Facebook 的响应?
例子:
我通过 FB:
https://www.facebook.com/dialog/oauth?client_id=1234567890&redirect_uri=http%3A%2F%2Flocalhost%2F&state=ef8dba2dc8b4fa002973ffa5e29c67cb
Facebook 返回:
http://localhost/?state=ef8dba2dc8b4fa002973ffa5e29c67cb&code=AQAhuVUqufbghj2bBLcCr5SdRJopdYaR-vAoZJzilvvDgiGYNuEPVKTRLqD9p9MPrPhIIubYPH0aka8RtBQU_vSGdkCI5DkQxhQpwWcADu1_jSQgOC9vBsF2oWardpcPcq4PzmNq-JYhdvEFyMD0K7vPY0WioUgLghhw28FJAhHis9K7dz6HyrNy0YXfjbK0AN0#_=_
但是,SDK 不处理上述来自 Facebook 的响应。 Facebook 建议您通过传回代码来获取和访问 token 。
- 交换用户访问 token 的代码
一旦用户授权您的应用,您应该发出服务器端请求,以将上面返回的代码换成用户访问 token 。
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 不自己做吗?
最佳答案
试试这个:
$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;
}
关于php - Facebook PHP SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10813166/