【问题标题】:Instagram API for a Mac Application适用于 Mac 应用程序的 Instagram API
【发布时间】:2016-06-05 05:16:47
【问题描述】:

我浏览了 Instagram 身份验证文档,发现除了将用户带到 Instagram 指定的 URL 之外,没有直接的身份验证方法。

这是 Instagram 文档所说的。

In order to receive an access_token, you must do the following:
  1. 将用户引导至我们的授权网址。如果用户未登录 在,他们将被要求登录。 系统将询问用户是否愿意授予您的应用程序访问她的 Instagram 数据的权限。

    The server will redirect the user in one of two ways that you choose:
    
    • 服务器端流程(推荐):将用户重定向到您的 URI 选择。获取提供的代码参数并将其交换为 access_token 通过将代码发布到我们的 access_token url。

      隐式流程:我们不处理代码,而是包含 access_token 作为 URL 中的片段 (#)。这种方法少 安全,但允许没有任何服务器组件的应用程序 接收 access_token。


我们应该把用户带到一个特定的 URL。 Instagram 使用 OAuth 2.0。 但问题是,有一个名为Flume 的 Mac 应用程序不会将用户带到 URL。很简单,让用户输入他们的usernamepasswordFlume连接到Instagram API,用户成功登录就可以看到他的媒体内容了。

我想知道 Flume 是如何做到这一点的?我对文档的理解有误吗?

请帮忙。提前致谢。

【问题讨论】:

    标签: macos oauth-2.0 instagram instagram-api


    【解决方案1】:

    您正在正确阅读文档。

    Flume 不使用 Instagram API,因此不受其限制的影响。相反,它可能会通过在不可见的浏览器实例中打开 Instagram 网站来使用网络抓取,在那里代表用户输入用户数据和命令,然后从下一个不可见的浏览器页面抓取结果等。

    关于如何在 OS X 中实现这一点有不同的方法,起点可以是Web scraping in Objective C。对于概念性概述,您可以查看RoboBrowser,这是一个 Python 库,但可以让您了解其工作原理。

    【讨论】:

    • 我想这就是答案。感谢您宝贵的时间:)
    【解决方案2】:

    相反,它可能会通过在不可见的浏览器实例中打开 Instagram 网站来使用网络抓取,在那里代表用户输入用户数据和命令,然后从下一个不可见的浏览器页面抓取结果等。

    这实际上是错误的。 Flume 找到了一种使用 Instagram 内部 API 来显示内容的方法。使用中间人代理客户端(例如Charles)会显示 Flume 应用发出的网络请求与 Instagram 不同原生应用发出的网络请求非常相似。 Flume 模仿 Instagram 的网络请求,以设置 HTTP 标头/cookies/auth 数据来检索/发布信息。

    我很高兴发布图片/文件,以供任何可能希望进一步证明这一点的人验证这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多