好吧,您可以尝试让 Facebook 页面 ( $pageId
) 的一位管理员授权您的应用 ( $fbAppId
):
<script>
var oauth_url = 'https://www.facebook.com/dialog/oauth/';
oauth_url += '?client_id=<?php echo $fbAppId; ?>';
oauth_url += '&redirect_uri=' + encodeURIComponent('https://www.facebook.com/pages/null/<?php echo $pageId; ?>/?sk=app_<?php echo $fbAppId; ?>');
oauth_url += '&scope=manage_pages'
window.top.location = oauth_url;
</script>
当他们授权它时,您可以使用您获得的签名请求 ( $signedRequest = $facebook->getSignedRequest();
) 请求持久令牌:
$url = 'https://graph.facebook.com/oauth/access_token?client_id=' . $fbAppId . '&client_secret=' . $appSecret . '&grant_type=fb_exchange_token&fb_exchange_token=' . $signedRequest['oauth_token'];
cURL 此 URL 并获取生成的 access_token:
$access_token = substr($response, strlen('access_token='));
将其保存到您的数据库。有了这个,你可以得到帖子:
$graphUrl = '/' . $pageId . '/posts?access_token=' . $accessToken;
$posts = $this->facebook->api($graphUrl, 'GET');
我不知道这个 access_token 过期多久。