为什么getAccessToken()返回的字符串比手动调用要短https://graph.facebook.com/o


Why does getAccessToken() return a shorter string than a manual call to https://graph.facebook.com/oauth/access_token?

在测试PHP-SDK时,我正在执行以下操作:

if($_REQUEST['state'] == $_SESSION['state']) {
$token_url = "https://graph.facebook.com/oauth/access_token?"
    . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
    . "&client_secret=" . $app_secret . "&code=" . $code;
$aContext = array( 'http' => array(
                'proxy' => 'tcp://192.168.55.40:80',
                'request_fulluri' => true,
                ),
            );
$cxContext = stream_context_create($aContext);
$response = file_get_contents($token_url, FALSE, $cxContext);
$params = null;
parse_str($response, $params);
//$graph_url = "https://graph.facebook.com/me?access_token=" . $params['access_token'];
//$user = json_decode(file_get_contents($graph_url, FALSE, $cxContext));
//var_dump($facebook->getAccessToken());
$facebook->setAccessToken($params['access_token']);
$user = $facebook->api('/me');

var_dump($user);exit;

$facebook->getAccessToken()返回一个48个字符的字符串。params[‘access_token’]是112个字符。为什么会这样?我需要做什么才能使用SDK获得有效的访问令牌?

它是应用程序访问令牌,而不是用户访问令牌。

请尝试使用SDK的getAccessToken。