我想在我的网站上创建一个小网页,只显示我的 Facebook帐户的所有活动(状态),如果有人访问该网页的话。
所以我转到facebook developers页面并下载了PHP SDK并开始尝试。但很快我发现了access_token
的事情。这实际上浪费了我很多时间。由于这些访问令牌只持续了一段时间,扩展访问令牌仅持续了60天(我不想继续更新它们)。我到处搜索,但无济于事。我无法找到一种方法,我可以使用FB的PHP SDK&图API。你能帮助我吗?
答案 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)
}