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
在您准备好后,准备好 [=75=] 浏览器中的地址栏和 运行
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>
我已经注册了沙盒用户。现在我正在尝试使用它,但我收到 "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
在您准备好后,准备好 [=75=] 浏览器中的地址栏和 运行
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>