Instagram-Node调用不断返回“访问代码无效”

时间:2016-03-04 17:25:27

标签: node.js instagram instagram-api

我最近开设了一个新的Instagram帐户并注册了一个新客户。我从Instagram收到的信息包括client_id和client_secret。

我只会在我的机器上运行脚本,并且是项目的唯一用户,所以我不需要任何用户“登录”。但出于某种原因,每当我尝试对Instagram-Node API进行任何调用时,它都会返回以下错误:

{ [Error: OAuthAccessTokenException: The access_token provided is invalid.]
  code: 400,
  error_type: 'OAuthAccessTokenException',
  error_message: 'The access_token provided is invalid.',
  retry: [Function] }

这对我来说很奇怪,因为我有一个相同的设置与较旧的Instagram帐户和不同的凭据,似乎工作得很好。然后,那是在11月之前,Instagram改变了他们的一些API policies

我像这样使用Instagram-Node:

ig.use({
    client_id: "dxxxxxxxxxxxxxxxxxxxxxxx2",
    client_secret: "4b0xaxaxaxaxaxaxaxaxaxaxa53c03100e4"
});

并像我这样第一次打电话:

ig.user_media_recent(user.toString(), options,...

我尝试通过redirect_uri重新路由我的请求来处理身份验证,如Instagram-Node文档中所示,但即使这样,我的所有请求都是未签名的,所以我不清楚我将如何处理access_token无论如何。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

好的,问题在于对沙盒模式限制的误解,它们实际上使得无法从不在沙盒中的用户查找媒体。

this说:

  

第一点很重要,这意味着API的行为就好像   Instagram上唯一的用户是您的沙盒用户,也是唯一的用户   所发布的媒体是每个用户的最后20个。

我试图从不在我的沙箱中的用户那里找到媒体,因此我收到了错误消息。我之前的凭证没有受到影响的原因是因为它们仍然在2016年6月的宽限期内被淘汰,届时它们也将过期。谢谢!

答案 1 :(得分:0)

我遇到了同样的问题。如果您的应用程序正在使用oauth,那么如果再次传递client_secret和client_id内容,则会导致Instagram出现错误。我不得不从我的代码中取出这些。所以我现在就传递access_token。

ig.use({ access_token: token });

ig.user_media_recent(config.userid, { count: 20 }, function(err, medias, pagination, remaining, limit) {

是我的等同声明。

编辑:我忘了提及。对于那些困惑的人来说,这是经过一段时间的后续行动:

api.authorize_user
api.get_authorization_url