【问题标题】:/v2.1/{post-id} does not deliver photos/v2.1/{post-id} 不发送照片
【发布时间】:2014-10-27 02:13:00
【问题描述】:

我知道这个问题已经问了好几次了,但我无法从其他帖子中找到解决方案:

我的目标是从我的一个 Facebook 网站阅读 Facebook 提要! 在那个网站上有几篇带有多张照片的帖子。

在您看到的第一个电话中,我总是只得到一张照片,但我需要所有照片。 为此,我提出了第二个请求,如果我使用我在 FacebookRequest.php 中更改的 v2.1,它应该向我提供该帖子的所有详细信息

这是我的代码:

FacebookSession::setDefaultApplication('yyy','xxxxx');

$session = new FacebookSession('yyy|xxxxx');

$url = '/{pageid}/feed';
$request = new FacebookRequest($session, 'GET', $url);
$response = $request->execute();
graphObject = $response->getGraphObject();
$rawFeed = $graphObject->asArray();

foreach($rawFeed['data'] as $item) {

    $x = explode('_',$item->id);    

    $url = "/".$x[0];           
    $request = new FacebookRequest($session, 'GET', $url);
    $response = $request->execute();
    $graphObject = $response->getGraphObject();
    $object = $graphObject->asArray();
    echo "<pre>";var_dump($object);echo "<pre>";
}

如果我使用此代码,我总是会收到错误:

Fatal error: Uncaught exception 'Facebook\FacebookAuthorizationException' with message '(#100) Requires user session'

为什么第一个请求返回数据,而发现的却遇到了这个异常!

编辑 1

找到了会话问题的解决方案(Facebook Access Token for Pages)-(最佳答案)但仍然卡在照片问题上:

现在我从 Facebook 取回了数据,但我没有得到贴在帖子中的照片!

这样我就再也没有身份验证问题了

$accessToken = "{accestToken from GRAPH API EXPLORER}";
$session = new FacebookSession($accessToken);

$url = "/{myPersonalFB-ID}/accounts";
$request = new FacebookRequest($session, 'GET', $url);
$response = $request->execute();
$graphObject = $response->getGraphObject();
$pages = $graphObject->asArray();

$pageAccesstoken = false; 
foreach($pages['data'] as $page)
{
    if($page->id != "{MyPageID}") continue;
    else {
        $pageAccesstoken = $page->access_token;
    }
}
$session = new FacebookSession($pageAccesstoken);

$url = '/{MyPageID}/feed';
...
...

【问题讨论】:

  • 请展示您现在如何使用页面访问令牌实现它(尤其是在您将其设置为用于请求的地方)。如果您的第一次调用通过页面访问令牌成功,则没有明显的理由不应该读取各个帖子的数据。顺便说一句,您应该考虑按照文档中的说明进行“嵌套请求”,以便您只需执行一个请求,而不是循环中的多个请求。
  • 查看编辑 1 中的更改:我从我的帐户中取回了此页面的 pageAccestoken。但是在请求 /v2.1/{post-id} 中我没有取回任何照片,但每个帖子中都有不止一张!我还尝试添加 ?fields=attachments,效果是我收到一个错误消息,告诉我没有附件!

标签: php facebook facebook-graph-api photos facebook-sdk-4.0


【解决方案1】:

如果您需要应用会话,请改用以下内容:

$session = FacebookSession::newAppSession();

然后您可以将此应用会话传递到您的 API 调用中以检索页面提要。

【讨论】:

  • 这个问题已经解决了,找到了解决方案但是又遇到了新问题(见问题中的编辑1)
【解决方案2】:

这似乎是 Facebook 的错误。我的同事打开了一个问题。 这是链接: https://developers.facebook.com/bugs/762280800482269/ 您还可以在这里找到一些信息: https://developers.facebook.com/bugs/790976317600139/ 希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 2020-05-06
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    相关资源
    最近更新 更多