访问令牌 - 我如何获得它们?

时间:2011-12-22 23:28:19

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

我有一个简单的问题:如何获得用户访问令牌?

我只需要基本信息,因此当用户在我的页面上点击“允许”时,我希望能够获得该用户的图片/用户名等。

为此,我需要获取该用户的访问令牌。

2 个答案:

答案 0 :(得分:0)

如果您正在使用PHP,则在成功登录用户后,您的应用程序可以使用访问令牌。这意味着你应该编写代码来做到这一点。我个人有一个简单的PHP页面(fblogin.php),我在一个新窗口打开,这里是代码(它使用facebook sdk,一定要下载它,还记得在facebook中创建一个应用程序,以防你没有)

require_once ('facebook/src/facebook.php');

// handel cancel
if (isset($_REQUEST['error_reason'])) {
     echo("<script>self.close();</script>");
     exit;
}

// ger request params
$code = $_REQUEST["code"];
$my_url = 'http://www.yourdomain.com/fblogin.php';
$api_key = 'YOURAPIKEY';
$secret = 'YOURSECRETCODE';

// build login url
$loginUrl = $facebook->getLoginUrl(array(
    'req_perms' => 'email,user_birthday',
    'display' => 'popup',
    'redirect_uri' => 'http://www.yourdomain.com/fblogin.php'
    ));

// if no facebook code is given, write login back againg to the window
if(empty($code)) {

    echo("<script> top.location.href='" . $loginUrl . "'</script>");
    exit;

} else {

        //set token for facebook object from graph
        $token_url = "https://graph.facebook.com/oauth/access_token?"
           . "client_id=" . $api_key . "&redirect_uri=" . urlencode($my_url)
           . "&client_secret=" . $secret . "&code=" . $code;

        $response = @file_get_contents($token_url);
        $params = null;
        parse_str($response, $params);

        $facebook->setAccessToken($params['access_token']);
        $fbme = $facebook->api('/me', 'GET');



        if ($fbme) {
            // YOU got the user, id, token, etc. 
                        // do anything you want here,
        } 

}

答案 1 :(得分:0)

要获取访问令牌,您必须在Facebook拥有一个帐户。如果您已经拥有该帐户,则应访问developers.facebook.com/docs/reference/api。在此页面上,您有使用Graph API的示例,然后您有一个生成的访问令牌。而且你有JSON结果的例子。有graph.facebook.com/your_id_number&lt; - 有关您在网络或图表中的基本公共信息.facebook.com/me/likes?access_token="here是一个116长度的数字和字母组合“。访问令牌在示例之间隐藏;)