Instagram API:提供的access_token无效

时间:2016-06-03 08:51:03

标签: instagram-api

我已注册沙盒用户。现在我正在尝试使用它,但我收到了#34;提供的access_token无效"。 样品申请:

https://api.instagram.com/v1/users/searchq=abc&count=2&client_id=7b67cff1a7ab462881298434c08b5ab8

它在实时模式下工作,但我无法找到它为什么不在沙箱中工作。

5 个答案:

答案 0 :(得分:5)

您需要检查您正在使用的要求Scope for AP以及是否需要和身份验证"有效访问令牌"。哪里也有一些变化。

  • 基本 - 阅读用户的个人资料信息和媒体
  • public_content代表用户阅读任何公开的个人资料信息和媒体
  • follower_list,以阅读关注者列表和后续用户
  • 评论 - 代表用户发布和删除评论
  • 人际关系 - 代表用户关注和取消关注帐户
  • 喜欢 - 代表用户喜欢和不喜欢媒体

并查看应用程序的**沙盒API行为,而不是生活:**

API行为

当您处于沙盒模式时,API的行为与您的应用程序处于活动状态时的行为相同,但具有以下限制:

数据仅限沙盒用户和每个沙盒用户的20个最新媒体 降低API速率限制 第一点非常重要,这意味着API的行为就好像Instagram上的唯一用户就是您的沙盒用户一样,并且发布的唯一媒体是每个用户的最后20个。

例如,如果您查询/ users / {user-id} / endpoint并且{user-id}是沙盒用户,那么您将获得正常的API响应;但如果{user-id}不是沙盒用户,则会收到APINotFound错误。

祝你好运

答案 1 :(得分:3)

对我而言,Instagram生成的访问令牌太短了:他们给了我这样的东西:

d2c387d768ec4d619306807c53bbf92b

它应该是:

2940736713.1677ed0.31bb22b2b0f84befacc79c6afd025134

我用这个网站来生成它: http://instagram.pixelunion.net

答案 2 :(得分:1)

我在通过access_token解决相同的访问问题时发现了它

这是如何获得access_token的官方常见问题解答

您只需要执行以下步骤(链接到Instagram API文档https://www.instagram.com/developer/authentication/):

1。请求代码

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code

将CLIENT_ID更改为您的客户端ID(您可以在https://www.instagram.com/developer/clients/manage/处获得它)

从客户端设置中的标签安全性将REDIRECT-URI更改为您的redirect_uri(打开上方的链接,然后点击“管理”按钮)。我在这里使用了这个https://meyerweb.com/eric/tools/dencoder/编码网址,然后粘贴结果而不是REDIRECT-URI

准备好后,可以处理指向浏览器中地址栏的链接并运行

2。获取代码

浏览器问您一个前提,然后将您重定向到带有最后代码的回调URL。在地址栏中看起来像这样:

http://yoursite.some/?code=d8af5619af6853d4ad11b4dd5f1ef17e

在此示例中,您的代码为 d8af5619af6853d4ad11b4dd5f1ef17e 保存。您应该在下面的access_token请求中使用它

3。发出access_token请求

打开终端并使用curl:

curl -F 'client_id=CLIENT_ID' \
-F 'client_secret=CLIENT_SECRET' \
-F 'grant_type=authorization_code' \
-F 'redirect_uri=AUTHORIZATION_REDIRECT_URI' \
-F 'code=CODE' \
https://api.instagram.com/oauth/access_token 

将CLIENT_ID,CLIENT_SECRET,AUTHORIZATION_REDIRECT_URI和CODE更改为您自己的数据并运行。

Curl像这样用access_token返回JSON:

{
    "access_token": "fb2e77d.47a0473320504cb3ab4a1f626d174d2d",
    "user": {
        "id": "1576583",
        "username": "some",
        "full_name": "Some",
        "profile_picture": "..."
    }
}

干得好!在此示例中, fb2e77d.47a0473320504cb3ab4a1f626d174d2d 是您的access_token。复制access_token值,在您的应用中使用它,并享受编码乐趣! :)

答案 3 :(得分:0)

我的问题是使用 Instafeed.js 的 v1,而不是 v2。

一旦我切换到 v2,一切都开始工作了。

<script src="/instafeed/dist/instafeed.min.js"></script>
<script src="https://ig.instant-tokens.com/users/.../instagram/.../token.js?userSecret=..."></script>
<div id="instafeed" class="instagram-feed">

</div>
<script>
    (function(){
      console.log(InstagramToken);
      window.addEventListener('load', function () {
        var feed = new Instafeed({
          accessToken: InstagramToken,
        });
        feed.run();
      });
    })();
</script>

答案 4 :(得分:-2)

您尚未为您的请求指定access_token。