Instagram API: 提供的 access_token 无效

Instagram API: The access_token provided is invalid

我已经注册了沙盒用户。现在我正在尝试使用它,但我收到 "The access_token provided is invalid"。 样品请求:

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

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

您需要检查您正在使用的 要求 Scope for API 以及是否需要和身份验证 "Valid access Token"。哪里也发生了一些变化。

  • 基本 - 读取用户的个人资料信息和媒体
  • public_content 代表用户阅读任何 public 个人资料信息和媒体
  • follower_list 阅读关注者和关注用户列表
  • 评论 - post 并代表用户删除评论
  • 关系 - 代表用户关注和取消关注帐户
  • 喜欢 - 代表用户喜欢和不喜欢媒体

并查看应用程序的 **Sandbox API 行为 尚未 life :**

API 行为

当您处于沙盒模式时,API 的行为与您的应用上线时的行为相同,但有以下限制:

数据仅限于沙盒用户和每个沙盒用户的 20 个最新媒体 减少 API 速率限制 第一点很重要,这意味着 API 的行为就好像 Instagram 上的唯一用户是您的沙盒用户,而曾经 posted 的唯一媒体是每个用户的最后 20 个。

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

祝你好运

您还没有为您的请求指定 access_token。

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

d2c387d768ec4d619306807c53bbf92b

应该是:

2940736713.1677ed0.31bb22b2b0f84befacc79c6afd025134

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

我在用access_token

解决同样的访问问题时发现的

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

您只需完成以下步骤(link 到 Instagram API 文档 https://www.instagram.com/developer/authentication/):

1.Request 代码

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(打开上面的 link 并点击 'manage' 按钮)。我在这里使用了这个 https://meyerweb.com/eric/tools/dencoder/ 编码 url 并粘贴结果 REDIRECT-URI

在您准备好后,准备好 [=7​​5=] 浏览器中的地址栏和 运行

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 return 你 JSON 和 access_token 像这样:

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

做得好!在这个例子中 fb2e77d.47a0473320504cb3ab4a1f626d174d2d 是你的 access_token。复制 access_token 值,在您的应用中使用它并享受您的编码! :)

我的问题是使用 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>