是的,这真的让我很紧张,但 Instagram 必须对他们的血腥文档做些什么。
我已经尝试了一个星期,在不刷新页面的情况下用新的 Instagram 帖子实时更新我的网站。 Twitter 相当简单,但 instagram 只是一团糟。基本上我使用实时 Instagram API,回调和所有这些工作正常,但感谢 Instagram 它不会从新的帖子中返回一个 ID,回调只返回一些基本的东西:
[{"changed_aspect": "media", "object": "tag", "object_id": "nofilter", "time": 1391091743, "subscription_id": xxxxx, "data": {}}]
有了这些数据,除了标签之外,你什么都不是,但我在这个回调之前也知道标签,所以没关系。它实际上只是告诉我有一个新帖子。我尝试过在页面加载时、发生此回调时执行相同的请求,并获取比页面上已有的帖子更新的帖子。不幸的是,我还没有成功。我从上次发布的 instagram 帖子中选择了 ID,并检查了它是否在回调请求中,但不是。
我究竟做错了什么?
我很感激一些帮助,谢谢!
编辑:
我想指出的是,这不仅是实时 api 的问题,也是普通 API 的问题。我只是不知道如何比较数据,所以我不会在我的数据库(普通 api)或我的网站(实时)中得到重复项。我找不到任何教程或文档(是的,我可能是盲人),这向我解释了如何比较数据。我只能找到 min_id 和 max_id,但没有解释这些 id 包含的内容。我用结果中的 id 检查了这些 id,但它们不匹配。它不是来自媒体项目的 ID。
我还检查了next_url,在我的逻辑思维中,这应该是下一页的URL(如Twitter)。
我看这一切都错了吗?
最佳答案
好的,我的旧答案,我改变了这样做的方式。这是我现在要做的。
我仍然在等待 10 次点击我的实时订阅,当我达到 10 次时,我发送一个新线程(如果一个线程尚未运行)。
同步线程在我的数据库中查询一个值,我需要我使用的最后一个 min_tag_id。然后我查询:
https://api.instagram.com/v1/tags/ * /media/recent?access_token= * &min_tag_id= *
在这里试试:https://api.instagram.com/v1/tags/montreal/media/recent?access_token= *
您将获得 20 个结果和一个 min_tag_id 值。将其附加到您的网址,您会看到没有任何结果。等待几秒钟并刷新。最终你会得到一些媒体和一个新的 min_tag_id。
(您可以忽略他们给您的“next_url”值,您不会使用它)。
基本上你只需要存储 min_tag_id 并查询直到你没有更多的结果,这意味着你已经完成了。
关于api - Instagram 实时从回调中获取帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21459151/