Instagram实时API回调URL转义[重复]

Posted

技术标签:

【中文标题】Instagram实时API回调URL转义[重复]【英文标题】:Instagram Real-Time API Callback URL Escaping [duplicate] 【发布时间】:2014-04-10 19:38:48 【问题描述】:

当用户发布图片时,我使用Instagram's Real-Time API 接收实时更新。 这一切都已设置好并且运行良好。今天随机决定不工作了。

已采取调试步骤:

    客户端/应用程序已在 Instagram 注册

    验证至少有一个用户已经订阅...我知道这一点,因为当我 verify the list 时,我得到了这个响应(example.com 替换了实际域)。

    “元”:“代码”: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”并返回“无法访问回调 URL”。

我已经阅读了一堆关于 API 的其他问题,但似乎没有人报告类似的内容。现在已经有多个其他类似问题的报告(请参阅Instagram API - Unable to reach callback URL、Node.js Instagram APISubscriptionError 等)。在这一点上,我唯一的猜测是问题出在 Instagram 方面,但希望我忽略了某些东西或犯了一个愚蠢的错误。

感谢任何能给我指明正确方向的人。干杯。

【问题讨论】:

过去几天我也收到了Unable to reach callback URL。在那之前一切都很好...... 相同:***.com/questions/22951609/… 和 ***.com/questions/22956978/… 和 ***.com/questions/22983969/… 【参考方案1】:

回调 url 很好。您看到的额外\s 是由于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

【讨论】:

【参考方案2】:

过去几天我一直遇到同样的问题。作为最后的努力,我尝试使用 API 清除所有订阅,以防有孤儿通过系统运行。 YMMV,但这最终解决了我的“无法到达 callback_url”问题。

Realtime Photo Updates API 文档的最后一部分有详细信息。要从命令行快速测试,可以试试他们的 curl 示例:

curl -X DELETE 'https://api.instagram.com/v1/subscriptions?client_secret=CLIENT-SECRET&object=all&client_id=CLIENT-ID'

如果这最终对您有用,我建议您更新您的应用代码以删除给定 client_id 的所有现有订阅,然后再开始新订阅。当然,这只有在您限制自己为每组凭据创建一个订阅时才可行。如果您要创建多个订阅,则需要跟踪构成活动订阅的查询,并在重新创建之前删除已存在的查询。

【讨论】:

【参考方案3】:

这实际上是 Instagram 的一个错误。他们修复了它,它现在应该可以工作了。

【讨论】:

以上是关于Instagram实时API回调URL转义[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Instagram 无法访问回调 URL

Instagram 无法访问回调 URL

Instagram 无法访问回调 URL

无法接收来自 Instagram API 的 POST 请求

Instagram API 获取以下和关注者列表

Instagram 实时 API 的更新很少