我已经通过Instagram API订阅了特定标签的实时更新,使用此代码(如API文档中提供的):
curl -F 'client_id=CLIENT_ID'
-F 'client_secret=CLIENT_SECRET'
-F 'object=tag'
-F 'aspect=media'
-F 'verify_token=MY_SECURITY_TOKEN'
-F 'object_id=TAG_NAME'
-F 'callback_url=MY_CALLBACK_URL'
https://api.instagram.com/v1/subscriptions/
这很好,每当有标签为TAG_NAME
的新帖子时,Instagram就会调用MY_CALLBACK_URL
。
我的回调脚本从Instagram获取所有数据并将其存储在我的本地数据库中,这样我就不必每次有人访问我的网站时都获取所有数据。问题是,当帖子被编辑或删除时,我不会收到通知,所以我本地数据库中的数据经常会过时。
为了解决这个问题,我想我可以。。。
- 。。。为我收到的每一篇帖子设置实时订阅(出于明显的原因,这听起来不是一个好主意)
- 。。。不要保存数据的本地副本,而是每次有人访问我的网站时都从Instagram上获取所有数据(这可能会很快突破API的限制)
这里的最佳做法是什么?
我认为在存储数据方面有点灰色地带。我使用实时API设置了一个相同的设置,将图像URL存储在MySQL数据库中。
然后,在客户端,我在页面上显示图像之前使用Jquery ImageLoaded库来确定它们是否仍然存在。这有点粗糙,但很管用。