使用Facebook的Php Sdk& amp; s访问个人资料图API

时间:2014-04-04 20:36:46

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

我想在我的网站上创建一个小网页,只显示我的 Facebook帐户的所有活动(状态),如果有人访问该网页的话。

所以我转到facebook developers页面并下载了PHP SDK并开始尝试。但很快我发现了access_token的事情。这实际上浪费了我很多时间。由于这些访问令牌只持续了一段时间,扩展访问令牌仅持续了60天(我不想继续更新它们)。我到处搜索,但无济于事。我无法找到一种方法,我可以使用FB的PHP SDK&图API。你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

您需要access_token从您的帐户中提取Feed。您无法使用其他令牌接受此令牌。

如果你有一个后端服务器(我猜你一定有),这对你来说会更容易。您可以编写一个小脚本,您可以在其中调用facebook 登录并获取正常的访问令牌,然后扩展它有效期为60天并将其保存到您的数据库中截止日期。在它过期之前,只需运行脚本,令牌就会刷新。您的主网站将始终从数据库中获取令牌。
很简单。我不认为你还能做其他任何事情。

如果您对这样的脚本感兴趣,我可以帮助您 -

$code = $_REQUEST["code"];

if(empty($code))
{ 
    $dialog_url= "http://www.facebook.com/dialog/oauth?"
                . "client_id=" . $APP_ID
                . "&redirect_uri=" . urlencode( $post_login_url);

    echo("<script>top.location.href='" . $dialog_url . "'</script>");
}
else 
{
    // access token
    $token_url = "https://graph.facebook.com/oauth/access_token?"
                    . "client_id=" . $APP_ID
                    . "&redirect_uri=" . urlencode( $post_login_url)
                    . "&client_secret=" . $APP_SECRET
                    . "&code=" . $_REQUEST["code"];

    $response1 = file_get_contents($token_url);
    $params = null;
    parse_str($response1, $params);
    $access_token = $params['access_token'];

    // extended token
    $extended_token_url = "https://graph.facebook.com/oauth/access_token?"
                        . "grant_type=fb_exchange_token"
                        . "&client_id=" . $APP_ID
                        . "&client_secret=" . $APP_SECRET
                        . "&fb_exchange_token=" . $access_token;

    $response2 = file_get_contents($extended_token_url);
    $response2 = json_decode($response2);
    $extended_access_token = $params['access_token']; // save this to the database with the expiration date(current date+60days)
}