随着instagrams新的api更改,似乎没有办法在没有某种用户交互的情况下获得access_token . 我发现的所有文档都表明,在通过用户交互授权应用程序时,必须通过loggin:https://www.instagram.com/developer/authentication/:
服务器端(明确)流程第一步:将用户引导至我们的授权URL https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code注意:您可以提供可选范围参数,用于请求“基本”权限范围之外的其他权限 . 详细了解范围 . 注意:您可以提供可选的状态参数以执行特定于服务器的状态 . 例如,您可以使用它来防止CSRF问题 . 此时,我们向用户显示一个登录屏幕,然后是一个确认屏幕,用于授予您的应用访问其Instagram数据的权限 . 客户端(隐式)身份验证第一步:将用户定向到我们的授权网址https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token此时,我们提供用户使用登录屏幕然后是确认屏幕,他们授予您应用访问其Instagram数据的权限 . 请注意,与显式流不同,此处的响应类型为“token” .
使用可定期刷新的access_token,是否可以在没有用户交互的情况下获取访问令牌?
我正在尝试在我的网站上显示我的Feed,但除了API更改后提供的嵌入选项之外,我还没有找到方法 .
编辑:我的问题被标记为Instagram OAuth Access Token expiration for app的重复,但我不是在考虑到期(在IG文档中没有明确定义) . 我想要一种纯粹的编程方式来获取access_token .
3 回答
您可以将访问令牌存储在服务器中 . 只要它有效,您无需要求您的用户登录 .
请记住,访问令牌有一个到期日期 . 因此,你必须处理这种情况[即,到期时,要求用户再次登录并获取并保存新的访问令牌]
在Instagram开发人员文档中,它指出:
https://www.instagram.com/developer/authorization/
因此,如果您已经在Instagram上设置了客户端,只要您处于“沙盒”模式,就应该可以继续从API中获取帖子 . 您只能获取自己的用户帐户或任何已获得沙箱权限的帖子(限制为10) .
如果您还没有访问令牌,则可以使用类似Oauth.io的内容 . (免费 . )
我也有这个问题 . 我假设您想编写一个脚本来为您运行 .
一个(相当蹩脚)的解决方案是使用selenium,幻像JS,无头chrome或任何其他类似的技术来访问登录屏幕以填写帐户凭据(抛出窗口中的安全性),然后从以下重定向中获取代码网址...
很遗憾Instagram不允许这种非用户需要的帐户选项 .