【问题标题】:Facebook PHP SDK脸书 PHP SDK
【发布时间】:2012-06-04 12:05:54
【问题描述】:

我想知道 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 建议您通过回传代码来获取和访问令牌。

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

【问题讨论】:

  • 我认为要获得访问令牌,您需要登录并按照身份验证对话的轨迹为应用程序授予适当的权限,但您也可以使用图形 api 资源管理器并给自己一个如果您只是出于开发目的需要访问令牌 - developers.facebook.com/tools/explorer

标签: php facebook authentication sdk


【解决方案1】:

试试这个:

$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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 2012-03-17
    相关资源
    最近更新 更多