我已经找到了很多关于这个问题的线索,但我找不到任何可行的解决方案。
我需要做的就是在后台下载公共页面状态(使用cron)。到目前为止,我已经使用了以下代码。
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
public function actionDownload() {
$appId = "...";
$appKey = "...";
$pageId = '...';
// Create FB session.
FacebookSession::setDefaultApplication($appId, $appKey);
$session = FacebookSession::newAppSession();
// Perform FB request.
$request = new FacebookRequest($session, 'GET', "/" . $pageId . "/posts");
$response = $request->execute();
$results = $response->getGraphObject()->asArray();
// Parse response and save results.
/// ...
}
一个例外情况很好。我不想要所有帖子。我只需要状态。所以我已经将“帖子”边缘更改为“状态”边缘,现在它因FacebookAuthorizationException而失败(#100)需要用户会话。尽管“页面/状态”边缘文档声明
,但它仍然失败查看任何公开共享状态需要任何有效的访问令牌。
那有什么不对?如果app令牌不够,我如何在后台cron进程中获取用户访问令牌?
答案 0 :(得分:0)
请参阅文档:https://developers.facebook.com/docs/graph-api/reference/v2.2/page/feed
确保App Access令牌正确无误。尝试自己设置App令牌:
$facebook->setAccessToken($appAccessToken);
App Access Token只是" App-ID | App-Secret"。
使用正确的令牌,它应该有效:https://developers.facebook.com/tools/explorer/145634995501895/?method=GET&path=bladauhu%2Fstatuses&version=v2.2
如果您只想要用户发布,则可能需要使用Feed端点并过滤掉网页发布。