我正在从移动应用程序对Instagram API进行请求。目前,我只是将用户引导到Instagram授权URL,并指定响应类型为“access_token”。指定此response_type被称为隐式授权。
显式授权:response_type=code 隐式授权:response_type=access_token
我正试图避免需要建立一个Web服务来促进明确的身份验证。这是必要的,因为在明确的身份验证流程中,Instagram API需要调用重定向URL并传递“code”参数。然后,我的服务器端代码将使用该代码向Instagram发出最终请求以获得访问令牌。
对于移动应用程序使用隐式流程要更有效率,因为不需要额外的私有身份验证服务来处理它。
Instagram支持以下范围:
- basic - 读取与用户相关的任何和所有数据(例如关注/被关注列表、照片等)(默认情况下授权)
- comments - 代表用户创建或删除评论
- relationships - 代表用户关注和取消关注其他用户
- likes - 代表用户喜欢和取消喜欢条目
当我除了“basic”之外的任何其他类型的范围规范时,在用户提供认证URL时会收到以下响应:
{"code": 400, "error_type": "OAuthException", "error_message": "Invalid scope field(s): basic+likes"}
除了“basic”范围之外的任何组合都会产生相同的响应。
所以,我的问题如下:
- 是否需要显式授权才能指定超出“basic”范围的范围?
- 我需要指定response_type=code才能使用扩展范围吗?
- 这是Instagram的限制还是OAuth 2.0的限制?
提前致谢。