我已经浏览了Instagram身份验证文档,我可以看到除了将用户带到Instagram指定的URL之外,没有直接的身份验证方式。
In order to receive an access_token, you must do the following:
将用户定向到我们的授权网址。如果用户未登录 在,他们将被要求登录。 系统将询问用户是否要授予您的应用程序访问其Instagram数据的权限。
The server will redirect the user in one of two ways that you choose:
服务器端流程(推荐):将用户重定向到您的URI 选择。获取提供的代码参数并将其交换为 access_token通过将代码发布到我们的access_token网址。
隐式流程:我们不是处理代码,而是包含 access_token作为URL中的片段(#)。这种方法较少 安全,但允许没有任何服务器组件的应用程序 收到access_token。
请参阅我们应该将用户带到特定的网址。 Instagram
使用OAuth 2.0
。
但问题是有一个名为Flume
的Mac应用程序,它不会将用户带到URL。这很简单,用户可以输入他们的username
和password
,Flume
连接到Instagram API
,用户成功登录并能够看到他的媒体内容。
我想知道Flume是怎么做到的?我是否错误地理解了文档?
请帮忙。提前谢谢。
答案 0 :(得分:3)
您正在正确阅读文档。
Flume不使用Instagram API,因此不受其限制。相反,它可能会通过在一个不可见的浏览器实例中打开Instagram网站来使用网页抓取,代表用户输入用户数据和命令,然后从下一个不可见的浏览器页面等处抓取结果。
有关如何在OS X中实现此目的的不同方法,起点可能是Web scraping in Objective C。对于概念性概述,您可以查看RoboBrowser,它是一个Python库,但可以让您了解其工作原理。
答案 1 :(得分:1)
相反,它可能会通过在一个不可见的浏览器实例中打开Instagram网站来使用网页抓取,代表用户输入用户数据和命令,然后从下一个不可见的浏览器页面等中抓取结果。
这实际上是假的。 Flume找到了一种使用Instagram的内部API来显示内容的方法。使用像Charles这样的中间人代理客户端将显示网络请求Flume应用程序与Instagram的不同本机应用程序发出的网络请求非常相似。 Flume模仿Instagram的网络请求,以便设置HTTP标头/ cookie / auth数据来检索/发布信息。
我很乐意发布图片/文件,以便为可能希望进一步证明这一点的任何人进行验证。