如何在没有用户交互的情况下获得instagram access_token(新api)?

时间:2016-06-07 19:58:21

标签: javascript oauth instagram instagram-api

使用instagrams新的api更改,似乎没有办法在没有某种用户交互的情况下获得access_token。我发现的所有文档都声明,在通过用户交互(https://www.instagram.com/developer/authentication/)授权应用程序时,必须通过loggin:

  

服务器端(显式)流

     

第一步:将用户引导至我们的授权网址

     

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code   注意:您可以提供可选的范围参数来请求   “基本”权限范围之外的其他权限。学习   更多关于范围。

     

注意:您可以提供一个可选的状态参数来执行a   特定于服务器的状态。例如,您可以使用它来保护   反对CSRF问题。

     

此时,我们向用户显示登录屏幕,然后是   确认屏幕在哪里授予您的应用访问她的Instagram   数据

     

客户端(隐式)身份验证

     

第一步:将用户引导至我们的授权网址

     

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token   此时,我们向用户显示登录屏幕,然后是   确认屏幕,他们授予您的应用访问他们的权限   Instagram数据。请注意,与显式流不同的是响应类型   这是“令牌”。

使用可定期刷新的access_token,是否可以在没有用户交互的情况下获取访问令牌?

我正在尝试在我的网站上显示我的Feed,但除了API更改后提供的嵌入选项之外,我还没有找到方法。

编辑:我的问题被标记为Instagram OAuth Access Token expiration for app的欺骗,但我不是在考虑到期(在IG文档中没有明确定义)。我想要一种纯粹的编程方式来获取access_token。

3 个答案:

答案 0 :(得分:0)

您可以将访问令牌存储在服务器中。 只要它有效,您无需要求您的用户登录。

请记住,访问令牌有一个到期日期。所以你必须处理这种情况[即,到期时,要求用户再次登录并获取并保存新的访问令牌]

答案 1 :(得分:0)

在Instagram开发者文档中,它声明:

https://www.instagram.com/developer/authorization/

  

个人网站的内容显示。如果您是开发人员和您   想在网站上展示Instagram内容,那么你就不需要了   提交您的应用以供审核。通过在沙盒模式下使用客户端,您   仍然可以访问任何沙盒用户的最后20个媒体   授予你许可。

因此,如果您已经在Instagram上设置了客户端,只要您处于“沙盒”模式,您就可以继续从API中获取帖子。您只能获取自己的用户帐户或任何已获得沙箱权限的帖子(限制为10)。

如果您还没有访问令牌,可以使用类似Oauth.io的内容。 (它是免费的。)

答案 2 :(得分:0)

我也有这个问题。我假设您想编写一个脚本来为您运行。

一个(相当蹩脚)的解决方案是使用selenium,幻像JS,无头chrome或任何其他类似技术来访问登录屏幕以填写帐户凭据(将安全性抛出窗外),然后从中获取代码以下重定向网址...

很遗憾Instagram不允许这种非用户需要的帐户选项。