我最近开了一个新的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帐户和不同的凭据,似乎工作得很好。话又说回来,那是在十一月之前,当时Instagram改变了他们的一些API政策。
我像这样使用Instagram-Node:
ig.use({
client_id: "dxxxxxxxxxxxxxxxxxxxxxxx2",
client_secret: "4b0xaxaxaxaxaxaxaxaxaxaxa53c03100e4"
});
并像这样打我的第一个电话:
ig.user_media_recent(user.toString(), options,...
我尝试通过 Instagram-Node 文档中所示的redirect_uri重新路由我的请求来处理身份验证,但即便如此,我的所有请求都是未签名的,所以我不清楚我会如何处理access_token以任何方式。
任何帮助将不胜感激!
好的,问题是对沙盒模式限制的误解,它们基本上使无法从不在沙盒中的用户那里查找媒体。
这里的文档说:
第一点很重要,这意味着 API 的行为就像 Instagram上唯一的用户是你的沙盒用户,唯一的 曾经发布的媒体是这些用户中每个用户的最后 20 个。
我试图从不在沙盒中的用户那里查找媒体,因此收到错误。我以前的凭据不受影响的原因是因为它们仍然被豁免到宽限期,即 2016 年 6 月,届时它们也将过期。谢谢!
我遇到了同样的问题。如果您的应用程序正在使用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