oauth - Instagram API : do scopes work with OAuth2 implicit authentication flow?

标签 oauth scope oauth-2.0 instagram

我正在通过移动应用向 Instagram API 发出请求。目前,我只是将用户定向到 Instagram 身份验证 URL 并将响应类型指定为“access_token”。指定此response_type称为隐式身份验证。

显式身份验证:response_type=code 隐式身份验证:response_type=access_token

我正在尝试绕过需要建立网络服务来促进显式身份验证的情况。这是必要的,因为在显式身份验证流程中,Instagram API 需要调用重定向 URL 并传入“代码”参数。然后,我的服务器端代码将使用该代码向 Instagram 发出访问 token 的最终请求。

移动应用程序使用隐式流程会更加高效,因为不需要额外的私有(private)维护的身份验证服务来处理它。

Instagram 支持以下范围:

  • 基本 - 读取与用户相关的任何和所有数据(例如 关注/关注列表、照片等)(默认授予)
  • 评论 - 代表用户创建或删除评论
  • 关系 - 代表用户关注和取消关注用户
  • 喜欢 - 代表用户喜欢和不喜欢项目

当我制定除“基本”之外的任何其他类型的范围规范时,当用户在身份验证 URL 处提供凭据时,我会收到以下响应:

{"code": 400, "error_type": "OAuthException", "error_message": "Invalid scope field(s): basic+likes"}

除“基本”之外的任何范围组合都会给出相同的响应。

所以,我的问题是:

  • 是否需要显式身份验证才能指定“基本”之外的范围?
  • 我是否需要指定 response_type=code 才能使扩展范围发挥作用?
  • 这是 Instagram 的限制,还是 OAuth 2.0 的限制?

提前致谢。

最佳答案

我刚刚尝试使用隐式 oauth 流程与我的 client_id 和 scope=basic+likes ,它起作用了。将下面的 url 替换为您的 client_id 和 redirect_uri,然后尝试。

https://instagram.com/oauth/authorize/?client_id=CLIENT_ID&redirect_uri=REDIRECT-URI&response_type=token&scope=basic+likes

可能是 Instagram 不允许新客户帐户使用基本范围以外的范围...

关于oauth - Instagram API : do scopes work with OAuth2 implicit authentication flow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20580535/

相关文章:

c++ - 如何使大量现有功能在类的范围内可用?

spring-boot - POST 请求中的 Oauth2 纯文本凭据?

java - 使用指定电子邮件帐户通过 Gmail API 发送电子邮件

asp.net - 我应该如何使用 OAuth 2.0 将身份验证从桌面应用程序共享到 Web 应用程序

oauth - Nest API - 如何唯一标识帐户

node.js - 如何在 Node.js 中创建 "private beta"用户队列系统?

javascript - 仅在 Safari 中 : ReferenceError Can't find variable

javascript - AJAX 调用中的变量范围

android - 如何登录linkedin发送访问 token 到服务器端

java - 如何在 Spring 中生成访问 token