【问题标题】:Is the Enforce Signed Header required when calling the POST request?调用 POST 请求时是否需要 Enforce Signed Header?
【发布时间】:2015-01-29 15:50:24
【问题描述】:

在创建我的 Android 应用程序时,我很难在我的提要上点赞照片,如果我没记错的话,解决方案是在创建 instagram 对象时提供一个 Enforce Signed Header。但是,如果我查看 API 文档,它会说:

重要提示您的客户端密码应始终保持安全。 不要与任何人分享这个秘密,不要将它包含在 java-script 中 代码或移动客户端。 没有服务器端的移动应用 组件不应使用强制签名标头设置。您有 随时将您的客户端密码重置为新值的能力,如果 你怀疑它被泄露了。

但是,当我禁用 Enforce Signed Header 时,点赞功能不起作用。使用 Enforce Signed Header 时,我通过 HTTP 请求向设备槽 http://myip.dnsomatic.com/ 提供远程 IP 以解析网页。

再次引用开发 API:

如果启用了 Enforce 签名标头,则以下端点需要 X-Insta-Forwarded-For 标头:

  • POST /users/{user_id}/relationship
  • POST /media/{media_id}/cmets
  • DEL /media/{media_id}/cmets/{comment_id}
  • POST /media/{media_id}/likes
  • DEL /media/{media_id}/likes

所以基本上它说(我从这句话中得到的)是如果启用了 Enforce Signed Header,这些端点需要 X-Insta-Forwarded-For 标头。这意味着如果 Enforce Signed Header 被禁用,他们就不需要该标头。

我这样做是否正确,或者我是否能够喜欢没有 Enforce Signed Header 的照片和视频?

我将在今天晚些时候尝试为没有 Enforce Signed Header 的照片点赞时对此进行编辑并发布日志。谢谢!

另一个快速的问题,在上述文档的引用中,他们说不要在代码中包含客户端密码,但需要客户端密码才能创建 instagram 对象。你是如何解决这个挑战的?现在我将客户端机密存储在我的应用程序中的加密密钥中,这是一个好方法吗?

感谢您的所有提示,

提姆

【问题讨论】:

    标签: java android http-headers instagram


    【解决方案1】:

    如果您不使用 Enforce Signed Header(和 X-Insta-Forwarded-For),那么您仍然可以点赞、评论和关注/取消关注,但您将有点赞/小时或关注/小时的下限。

    查看此页面以了解使用签名呼叫与未签名呼叫时的限制: http://instagram.com/developer/limits/

    【讨论】:

    • API 说我不允许在移动端使用它。除了使用 Enfore Signed Headers 的限制提高之外,还有什么优势吗?
    • 签名头的代码不应该在移动客户端代码中,因为它需要client_secret在代码中,您仍然可以在服务器代码中实现并且您的应用程序可以调用服务器端。使用签名标头的另一个优点是 instagram 可以阻止任何使用您的应用发送垃圾邮件的人。
    • 所以你建议让服务器来处理请求?
    • 这取决于你是否需要额外的限制,如果你不需要,那么你可以做所有的应用程序端开始,然后如果你真的想移动到服务器,最好没有服务器依赖,少一件需要担心的事情。
    • 我会在应用启动后监控它的使用情况,如果有很多用户达到限制,我会用服务器扩展我的服务!谢谢大佬!
    【解决方案2】:

    我错了,在 instagram 上使用 post 请求不需要 Enforce Signed Header。使用我的应用程序时清理 logcat。

    谢谢!

    【讨论】:

      猜你喜欢
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-30
      • 1970-01-01
      相关资源
      最近更新 更多