我正在尝试在我的个人网站上构建一个部分,显示我在Facebook上的帖子中标记的位置。我的理解是我需要在服务器上执行oAuth请求来获取AccessToken:
我构建了一个php文件,该文件获取包含令牌的文件并刷新它。我可以每小时用一个cron作业调用这个文件并拥有一个无限的令牌。它看起来像这样:
$appID = "APPID";
$appSecret = "APPSECRET";
$currentToken = file_get_contents(__DIR__."/token.txt");
$url = "https://graph.facebook.com/oauth/access_token?client_id=".$appID."&client_secret=".$appSecret."&grant_type=fb_exchange_token&fb_exchange_token=".$currentToken;
$ci = curl_init();
curl_setopt($ci, CURLOPT_URL, $url);
curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ci, CURLOPT_TIMEOUT, 10);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ci, CURLOPT_FOLLOWLOCATION, TRUE);
$newtoken = curl_exec($ci);
curl_close ($ci);
$newtoken = str_replace("access_token=","",$newtoken);
$newtoken = substr($newtoken, 0,strpos($newtoken, "&expires=",0));
if($newtoken == "")
{
echo "error";
}
else
{
$file = __DIR__."/token.txt";
file_put_contents($file, $newtoken);
echo $newtoken;
}
答案 0 :(得分:1)
如果访问令牌的格式为{app_id}|{app_secret}
,则您不使用用户访问令牌,而是使用应用访问令牌。
好像你没有实现正确的登录过程来收集用户访问令牌。坚持提供FB PHP SDK的示例代码。
见