如何在php中保存访问令牌?

时间:2012-05-18 16:27:57

标签: facebook facebook-graph-api facebook-access-token

我正在使用此端点来获取长期存在的令牌:

https://graph.facebook.com/oauth/access_token?             
    client_id=APP_ID&
    client_secret=APP_SECRET&
    grant_type=fb_exchange_token&
    fb_exchange_token=EXISTING_ACCESS_TOKEN 

但我想知道如何用php获取它。

我需要使用curl库吗? 或者有最简单的解决方案吗?

1 个答案:

答案 0 :(得分:5)

这是一个与facebook sdk一起使用的简单curl函数。不要忘记将路径更改为fb_ca_chain_bundle.crt

function curl($url, $certificate = false) {

    $c = curl_init($url);

    curl_setopt($c, CURLOPT_HTTPGET, true);
    curl_setopt($c, CURLOPT_FRESH_CONNECT, true);
    curl_setopt($c, CURLOPT_RETURNTRANSFER, true);

    curl_setopt ($c, CURLOPT_SSL_VERIFYPEER, TRUE); 
    curl_setopt ($c, CURLOPT_CAINFO, dirname(__FILE__) . '/sdk/fb_ca_chain_bundle.crt');

    $output = curl_exec($c);

    if ($output === false) {
        curl_close($c);
        return false;
    }

    curl_close($c);
    return $output;

}

这是获取长期存在的令牌的方法调用:

§token = curl('https://graph.facebook.com/oauth/access_token?client_id='.
               $app_id.'&client_secret='.
               $app_secret.'&grant_type=fb_exchange_token&fb_exchange_token='.
               $api->getAccessToken());