如何通过curl获取Facebook应用程序的访问令牌

时间:2017-01-02 16:22:19

标签: php facebook facebook-graph-api curl

我正试图通过curl调用回调网址来获取Facebook应用的访问令牌。

在第一个函数中,我试图以这种方式构建登录URL:

if(!session_start()) {
        session_start();
    }

    $fb = new Facebook([
        'app_id'     => '',
        'app_secret' => '',
        'default_graph_version' => 'v2.8',
    ]);

    $helper = $fb->getRedirectLoginHelper();

    $callback = 'http://www.exemple.com/callback';

    $loginUrl = $helper->getLoginUrl($callback);

在回调页面中,我获取访问令牌并强制页面退出以在JSON中显示

  if(!session_start()) {
    session_start();
}

$fb = new Facebook\Facebook([
    'app_id'     => '',
    'app_secret' => '',
    'default_graph_version' => 'v2.8',
]);

$helper = $fb->getRedirectLoginHelper();

try {
    $accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
    // There was an error communicating with Graph
    echo $e->getMessage();
    exit;
}

if (isset($accessToken)) {
    $data['access_token'] = (string) $accessToken;
    $data = json_encode($data);
    die($data);
} elseif ($helper->getError()) {
    exit;
}

最后,我使用Curl来调用此页面并获得结果。

    $ch = curl_init();

    $url = //The loggin url.

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $result = curl_exec($ch);
    if (curl_errno($ch)) {
        echo 'Error:' . curl_error($ch);
    }
    curl_close ($ch);

    return $result;

这不适合我。我想弄清楚出了什么问题。

0 个答案:

没有答案