Facebook API私信消息图片已过期 - 如何获取新图片? URL签名已过期

时间:2017-03-28 14:30:39

标签: facebook facebook-graph-api

我正在帮助维护一个与Facebook集成的应用程序,并且有许多存档链接到旧的私人消息图像。有时这些图像会过期,我们会去Facebook并请求新图像。这种方法有90%的时间可以使用。

大约有10%的时间我们会收到回复,而我们无法判断新图像是什么。

为过期的Facebook私信图片申请新网址的正确方法是什么,最好是使用v2.5或更新的图谱API?

目前我们正在使用私人消息的消息ID对Facebook的Graph API进行GET请求,如下所示:

https://graph.facebook.com/v2.3/m_mid.XXXXXXXXX:YYYYYYYYY

这给了我们一个响应,里面有一堆attachments。对于90%的使用案例,有一个新附件,其urlname字段的新文件名包含旧文件名,例如:旧文件名为XXX,我们会在url字段中看到一个像.... XXXX ....这样的新文件名。

attachments [url='*%s*']/image_data/url
attachments [name='*%s*']/image_data/url

或有时

picture

但这与我们现在得到的不相符,这是一堆无法映射到新图像的附件。

1 个答案:

答案 0 :(得分:0)

我们还没有找到图表API的方法,但我们正在考虑以下解决方案:

  • 如果响应中只有一个附件,我们只使用那个网址。这在某些情况下有效,但在当然有多个图像时失败

  • 保存有关图像的更多元数据,最坏情况下是文件的MD5。然后将其与其他文件的MD5进行比较,直到得到我们想要的文件。我们可以考虑使用有关HEAD请求中的文件的信息,而不是MD5。所有这些都是未经测试的。

  • 每当发生这种情况时,都会使用新的元数据更新旧的消息元数据,从而完全避免问题,因为新的图像请求将来自新的元数据。