3

我想知道 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

脸书返回:

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自己不这样做吗?

4

1 回答 1

0

Try this :

$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;
}
于 2012-05-30T09:32:44.460 回答