随着instagrams新api的变化,似乎没有办法在没有某种用户交互的情况下获得access_token。我发现的所有留档都表明,在通过用户交互(https://www.instagram.com/developer/authentication/)授权应用程序时,必须通过登录:
服务器端(显式)流
第一步:将您的用户引导至我们的授权URL
https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID
注意:您可以提供一个可选的状态参数来执行特定于服务器的状态。例如,您可以使用它来防止CSRF问题。
此时,我们会向用户展示一个登录屏幕,然后是一个确认屏幕,用于授予您的应用访问她的Instagram数据的权限。
客户端(隐式)身份验证
第一步:将您的用户引导至我们的授权URL
https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID
使用定期刷新的access_token,是否可以在没有用户交互的情况下获得访问令牌?
我试图在我的网站上显示我的饲料,但我还没有找到一种方法,除了他们提供的嵌入选项后,API的变化。
编辑:我的问题被标记为应用程序的Instagram OAuth访问令牌过期的欺骗,但我不打算弄清楚过期(这在IG留档中没有明确定义)。我想要一种纯粹的编程方式来获取access_token。
我也遇到了这个问题。我假设你想写一个脚本来为你运行东西。
一个(相当蹩脚的)解决方案是使用selenium、phantomJS、Headless chrome或任何其他类似技术访问登录屏幕以填写帐户凭据(将安全性抛出窗口),然后从以下重定向URL中获取代码…
遗憾的是,Instagram不允许这种非用户所需的帐户选项。
您可以将访问令牌存储在您的服务器中。只要它有效,您就不需要要求您的用户登录。
请记住,访问令牌有一个到期日。所以你也必须处理这种情况[即,到期时,要求用户再次登录并获取并保存新的访问令牌]
在Instagram开发者文档中,它指出:
https://www.instagram.com/developer/authorization/
个人网站的内容展示。如果您是开发人员,并且您想在网站上展示Instagram内容,那么您不需要提交您的应用程序以供审核。通过在沙盒模式下使用客户端,您仍然可以访问任何授予您权限的沙盒用户的最后20个媒体。
因此,如果您已经使用Instagram设置了客户端,只要您处于“沙盒”模式,您应该能够继续从API获取您的帖子。您只能为自己的用户帐户或任何授予您沙盒权限的帐户获取帖子(限制为10个)。
如果您还没有访问令牌,您可以使用Oauth.io之类的东西。(它是免费的。)