2

每当我向 Facebook 发送令牌请求时,我都会收到NULL响应。不是异常或成功响应。总是NULL

$this->facebook = new Facebook(array(
    'appId'  => 'APP ID', 
    'secret' => 'APP SECRET',
    'cookie' => true
));

if(isset($_GET['code'])) {
    $token = $this->facebook->api('/oauth/access_token', 'GET', array(
        'client_id' => 'APP ID',
        'client_secret' => 'APP SECRET',
        'redirect_uri' => 'http://mywebsite.com?route=' . urlencode('account/connect/facebook/'),
        'code' => $_GET['code']
    ));

    print_r($token); // NULL
    exit;
} else {
    $this->redirect($this->facebook->getLoginUrl(array(
                'redirect_uri' => 'http://mywebsite.com?route=' . urlencode('account/connect/facebook/')
            )
        )
    );
}
4

2 回答 2

1
$token = $this->facebook->api('/oauth/access_token',

您不能使用 Facebook::api 进行此调用,因为该方法需要 JSON 响应,而此端点不会响应

但是你为什么要这样做呢?PHP SDK 已经具有检测传递code参数并将其交换为包含的访问令牌的功能,并且会自动执行此操作。

于 2012-12-12T07:07:17.447 回答
0

我认为你可以这样做:

$token = $this->facebook->getAccessToken();

http://developers.facebook.com/docs/reference/php/facebook-getAccessToken/

于 2012-12-12T02:09:39.490 回答