当用户发布图片时,我正在使用Instagram's Real-Time API来接收实时更新。 这一切都已经完成并且工作正常。今天随机决定不再工作。
已经采取的调试步骤:
验证至少有一个用户已经订阅...我知道这一点,因为当我verify the list时,我收到此回复(example.com替换了实际域名)。
{
“meta”:{“code”:200},
“数据:[{
“对象”:“用户”,
“OBJECT_ID”:空,
“纵横”:“媒体”,
“callback_url”: “http:\/\/example.com\/common\/instagram\/subscriptions
”,
“类型”:“订阅”,
“ID”: “4270301”
}]
}
显然,callback_url会发生一些奇怪的事情。您可以看到the sample response没有反斜杠。尝试通过curl订阅新用户时,我也会遇到相同的情况,其格式与Instagram's example完全相同。 Instagram正在尝试使用“http:\/\/example.com\/common\/instagram\/subscriptions
”并返回“无法访问回调网址”。
我已经阅读了一些关于API的其他问题,但似乎没有人报告像这样的。现在有多个其他类似问题的报告(请参阅Instagram API - Unable to reach callback URL,Node.js Instagram APISubscriptionError等)。在这一点上,我唯一的猜测是问题出在Instagram的一边,但希望我忽略了一些事情或犯了一个愚蠢的错误。
无尽的感谢任何能指出我正确方向的人。欢呼声。
答案 0 :(得分:1)
回调网址很好。您看到的额外\
是由于JSON对/
字符进行编码的方式。在这里查看转义规则:http://www.json.org/
真正的问题是Instagram的实时订阅API似乎在过去几天都有问题。有关链接,请参阅@ DanShev的评论。
与此同时,我建立了一个系统来定期查看我的用户'照片是我感兴趣的照片。我的代码(在Python中)看起来像这样:
from instagram import client
users = InstagramUser.objects.all()
for user in users:
api = client.InstagramAPI(access_token=user.access_token)
user_media, paginate_url = api.user_recent_media(user_id=user.instagram_user_id)
for media in user_media:
# Check if this is a media we've already gotten via subscription update
# Do somethign with the media
答案 1 :(得分:0)
过去几天我一直有同样的问题。作为最后的努力,我尝试使用API清除所有订阅,以防有孤儿在系统中运行。 YMMV,但最终解决了我的“无法达到callback_url”的问题。
Realtime Photo Updates API文档的最后一部分包含详细信息。要从命令行快速测试,请给他们的curl示例a go:
curl -X DELETE 'https://api.instagram.com/v1/subscriptions?client_secret=CLIENT-SECRET&object=all&client_id=CLIENT-ID'
如果这最终适合您,我建议您在开始新订阅之前更新您的应用代码以删除给定client_id的所有现有订阅。当然,只有在限制自己为每组凭据创建一个订阅时,这才是可行的。如果您要创建多个订阅,则需要跟踪构成活动订阅的查询,并在重新创建之前删除已存在的查询。
答案 2 :(得分:0)
这实际上是Instagram结束时的一个错误。他们修好了,现在应该可以了。