Instagram实时API回调URL转义

时间:2014-04-10 19:38:49

标签: curl instagram

当用户发布图片时,我正在使用Instagram's Real-Time API来接收实时更新。 这一切都已经完成并且工作正常。今天随机决定不再工作。

已经采取的调试步骤:

  1. 客户/应用已在Instagram注册
  2. 验证至少有一个用户已经订阅...我知道这一点,因为当我verify the list时,我收到此回复(example.com替换了实际域名)。

    {     “meta”:{“code”:200},     “数据:[{         “对象”:“用户”,         “OBJECT_ID”:空,         “纵横”:“媒体”,         “callback_url”: “http:\/\/example.com\/common\/instagram\/subscriptions”,         “类型”:“订阅”,         “ID”: “4270301”      }] }

  3. 创建新应用程序并从头开始(相同结果)
  4. 显然,callback_url会发生一些奇怪的事情。您可以看到the sample response没有反斜杠。尝试通过curl订阅新用户时,我也会遇到相同的情况,其格式与Instagram's example完全相同。 Instagram正在尝试使用“http:\/\/example.com\/common\/instagram\/subscriptions”并返回“无法访问回调网址”。

    我已经阅读了一些关于API的其他问题,但似乎没有人报告像这样的。现在有多个其他类似问题的报告(请参阅Instagram API - Unable to reach callback URLNode.js Instagram APISubscriptionError等)。在这一点上,我唯一的猜测是问题出在Instagram的一边,但希望我忽略了一些事情或犯了一个愚蠢的错误。

    无尽的感谢任何能指出我正确方向的人。欢呼声。

    enter image description here

3 个答案:

答案 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结束时的一个错误。他们修好了,现在应该可以了。