【问题标题】:FB Graph API query doesn't work in PHP SDKFB Graph API 查询在 PHP SDK 中不起作用
【发布时间】:2015-08-01 07:51:11
【问题描述】:

图形 API:2.4
PHP SDK:“facebook/php-sdk-v4”:“~5.0”

我想通过 PHP 和 PHP SDK 获取有关页面的详细信息。 使用查询:

$response = $fb->get('/' . $sPageID . '?fields=posts', $_SESSION['facebook_access_token']);

返回具有大量数据的帖子。但不幸的是错误的价值观:
例如,喜欢的限制 25 在这里适用。因此,即使一个帖子应该有 150 个赞,如果我执行 count ($post['likes']),结果也只能得到 25 个。

所以我尝试更改我的查询并根据 Graph Explorer 这似乎工作正常: PAGE_ID/posts?fields=likes.limit(100),message,comments,shares,picture,link,type

现在我无法将其转换为我的 PHP 调用。 我收到超时和

致命错误:未捕获的异常“Facebook\Exceptions\FacebookSDKException”带有消息“无法将响应从 Graph 转换为 GraphNode,因为响应看起来像 GraphEdge。尝试改用 GraphNodeFactory::makeGraphEdge()。在...

这是否可以通过 PHP 中的一个查询实现,还是我必须运行多个查询,每个帖子一个查询?

【问题讨论】:

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


    【解决方案1】:

    我找到了这个answer,如果因为这个请求的结束点是一个GraphEdge,那么试试这个:

    // Get basic info on the user from Facebook.
    try {
        $response = $fb->get('/' . $sPageID . '?fields=posts', $_SESSION['facebook_access_token']);
    
    } catch (Facebook\Exceptions\FacebookSDKException $e) {
        dd($e->getMessage());
    }
    $getGraphEdge = $response->getGraphEdge();
    

    希望对你有所帮助。

    问候。

    【讨论】:

    • 好像我不能使用getGraphEdgegetGraphNode - 这是否取决于/posts 参数?
    【解决方案2】:

    较新的 PHP SDK 版本具有 getGraphList() 方法,getGraphEdge() 用于较早版本,即使它没有记录。

    【讨论】:

    • 如果您解释了两者之间的区别,这个答案会更好,最好带有指向存在解释的文档的链接。
    • 更新:只需使用getBody()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 2021-07-07
    相关资源
    最近更新 更多