我正在帮助维护一个与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%的使用案例,有一个新附件,其url
或name
字段的新文件名包含旧文件名,例如:旧文件名为XXX,我们会在url
字段中看到一个像.... XXXX ....这样的新文件名。
attachments [url='*%s*']/image_data/url
attachments [name='*%s*']/image_data/url
或有时
picture
但这与我们现在得到的不相符,这是一堆无法映射到新图像的附件。
答案 0 :(得分:0)
我们还没有找到图表API的方法,但我们正在考虑以下解决方案:
如果响应中只有一个附件,我们只使用那个网址。这在某些情况下有效,但在当然有多个图像时失败
保存有关图像的更多元数据,最坏情况下是文件的MD5。然后将其与其他文件的MD5进行比较,直到得到我们想要的文件。我们可以考虑使用有关HEAD请求中的文件的信息,而不是MD5。所有这些都是未经测试的。
每当发生这种情况时,都会使用新的元数据更新旧的消息元数据,从而完全避免问题,因为新的图像请求将来自新的元数据。