我使用以下网址获得Facebook的身份验证令牌用于管理页面和页面事件后的工作...Facebook的身份验证令牌停止注销
https://www.facebook.com/dialog/oauth?client_id=CLIENTID&redirect_uri=REDIRECTURL&scope=manage_pages,create_event&response_type=token
此经过授权过程,并返回令牌,它保存在我的数据库中。然后我尝试做以下检索出席页的活动的一个人缩略图...
function fbEventRSVPPhotos($eventID){
$authToken = eto_get_option('eto_auth_fbauthtoken') //pulled from database;
$json = file_get_contents("https://graph.facebook.com/" . $eventID ."/attending?access_token=" . $authToken);
$attendees = json_decode($json, true);
echo '<div class=attendee-photos>';
foreach($attendees['data'] as $attendee) {
echo '<img class="facebook-thumb toggleTooltip" title="' . $attendee['name'] . ' is attending" src="https://graph.facebook.com/' . $attendee['id'] . '/picture?type=square">';
}
echo '</div>';
}
此功能,当我在Facebook的登录我的伟大工程,但是一旦我退出,我得到下面...
Warning: file_get_contents(https://graph.facebook.com/MYEVENTID/attending?access_token=MYTOKEN) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in PATHTOSCRIPT on line 94 Warning: Invalid argument supplied for foreach() in PATHTOSCRIPT on line 97
然后继续即使重新登录后显示此PHP错误。我已经基本上每次我重新登录时间来重新生成身份验证令牌。
有人能帮助我了解为什么会发生这种情况以及如何解决?
我认为这是预期的行为。查看[这篇文章](https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/)了解更多信息。 – Dragony
*场景4:用户注销Facebook *听起来像是我的问题,但是他们推测发生这种情况的原因是因为我没有在验证时询问'offline_access',但'offline_acces'已过时,我不能再请求它。我该如何解决这个问题或者在没有离线访问的情况下解决? –
我有一段时间没有在Facebook API上工作太多(它每个月都在变化),但据我所知,最多可以得到的是一个持续60天的令牌(只要用户不会“注销等)。 Facebook发布了一些关于迁移的信息[这里](https://developers.facebook.com/roadmap/offline-access-removal/)。 – Dragony