【问题标题】:Concerning the post picture size of facebook page/group feed by Graph Api关于 Graph Api 的 Facebook 页面/群组提要的帖子图片大小
【发布时间】:2014-03-24 22:31:51
【问题描述】:

我通过在 php 代码中调用此 Url 在我的网站中通过图形 api 显示 facebook 页面/组的提要/帖子 -

https://graph.facebook.com/page_id/feed?access_token=token_value

然后,在许多类型的帖子中,对于图片类型的帖子,我将图片 url 作为

http://photos-g.ak.fbcdn.net/hphotos-ak-frc3/t1.0-0/1972372_10152261154160659_883879121_s.jpg

现在它是最后一部分“_s.jpg”指示的小尺寸。但我希望所有图片尺寸都很大。所以要实现这一点,需要在图形 api url 中包含哪些参数 - “https://graph.facebook.com/page_id/feed?access_token=token_value”所以所有图片/视频类型的帖子的图片都将是大尺寸的??所以我认为最后会有“_b.jpg”。这可能在一个图形api调用中吗?

我通过谷歌搜索但没有运气,但最终计划我将上面图片 url 的最后一部分替换为“_b.jpg”,这样 url 就会像 -

http://photos-g.ak.fbcdn.net/hphotos-ak-frc3/t1.0-0/1972372_10152261154160659_883879121_b.jpg

但是这个 hack 有什么缺点吗?如果可能,在一个图形 api 调用中实现的正确方法是什么。

【问题讨论】:

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


    【解决方案1】:

    注意,

    /page/feed?fields=attachments
    

    这将为您提供完整大小的所有附件。为我工作的魅力

    【讨论】:

      【解决方案2】:

      您可以使用 FQL 查询来获取主页供稿中使用的大版本照片的来源信息:

      SELECT pid, object_id, src_big, src_big_width, src_big_height FROM photo WHERE object_id in (SELECT attachment.media.photo.fbid FROM stream WHERE source_id={page_id} AND actor_id={page_id})
      

      【讨论】:

      • 通过这个查询,我得到了最后一个“_n.jpg”的图片 url。它看起来像另一个 api 调用,而不是我想要的只是第一个 api 调用,因为我还有 1 个 api 调用,我没有提到。无论如何我的黑客呢?它没有错误吗?
      • 此外,当我尝试通过将 b.jpg 更改为 s.jpg 以在视频类型帖子中的图片 url 来应用 hack 时,我没有得到任何图像,这意味着视频帖子图片的尺寸不小。同样,如果我尝试按照我所说的从图片 url 中的 s.jpg 更改为 b.jpg,是否会出现该图像不存在错误?
      • 好吧,我建议坚持我建议的解决方案,因为它不是黑客。您可以使用批处理 API 将用例的两个必要查询批处理为一个。我认为这将是一个更加稳定的场景。
      • 为什么这个查询没有得到任何照片 url - SELECT pid, object_id, src_big FROM photo WHERE object_id in (SELECT attachment.media.photo.fbid FROM stream WHERE source_id=6650304666 AND actor_id=6650304666 limit 200) limit 200 因为我需要页面/组提要帖子的正确照片 url
      • 除了您刚刚添加的页面 ID 之外,我并没有看到与我的建议有什么不同。
      【解决方案3】:

      不确定这是否真的记录在某处——但​​在 Graph API Explorer 中,“搜索​​字段”功能建议使用一个名为 full_picture 的字段。一些快速测试表明,对于大多数提要项目,它会返回用于发布帖子的原始图像,无论是与帖子一起上传的图片、视频缩略图还是其他任何内容。

      您可以像这样在您的提要调用中使用它:

      /{user-or-page-id}/feed?fields=full_picture,message,type,…
      

      使用fields 参数时,默认情况下只有idcreated_time,您可能感兴趣的所有其他字段(messagetypefrom 等)您也得具体要求。


      这适用于可能附有图片的任何类型的提要项目 - 除了type:photo。对于这些,您也会得到一个 object_id,当您在第二个请求中明确查询时,您会得到一个 images 数据结构,其中列出了 Facebook 在其 CDN 上的不同图像大小。

      我还没有找到一个 wya 让它一次性吐出原始 /foo/feed 请求中的附加信息 - 但如果你收集调用传递的所有 object_id,你可以在第二个调用中使用它们,像这样一次获取多个对象的信息:

      /?ids=object_id1,object_id2,…&fields=images
      

      【讨论】:

      • fields=full_picture 包含在图形 api 中看起来非常好,但是对于正确包含页面/组/配置文件提要的哪些字段有点困惑!在同一个电话中。但是是否有可能通过 Fql 查询来做到这一点(获取页面/组的所有帖子的完整图片大小)?因为我已经有一个用于其他目的的第二个 fql 查询调用,所以我可以在我的第二个调用中包含另一个图片大小获取查询以节省时间。非常感谢,我知道 object_id 仅用于照片帖子,但我的意图是任何帖子图片类型。
      【解决方案4】:

      每个提要都有一个节点名称 object-Id,像这样使用这个 id

      graph.facebook.com/object-id/picture?type=large

      如果显示问号照片,则在查询字符串中使用 access_token=XXXXXX。

      【讨论】:

      • 感谢您的指出,但仅适用于照片帖子。您认为在链接、视频等其他类型的帖子中显示大照片尺寸是不合逻辑/各种问题吗?
      猜你喜欢
      • 1970-01-01
      • 2018-12-19
      • 2012-04-28
      • 1970-01-01
      • 2013-04-29
      • 1970-01-01
      • 1970-01-01
      • 2022-09-26
      • 2015-10-20
      相关资源
      最近更新 更多