调用Twitter REST API返回Client Forbidden错误如何解决
{ "client_id": "21423516", "detail": "When authenticating requests to the Twitter API v2 endpoints, you must use keys and tokens from a Twitter developer App that is attached to a Project. You can create a project via the developer portal.", "title": "Client Forbidden", "required_enrollment": "Standard Basic", "reason": "client-not-enrolled", }
错误产生原因
- 你当前调用的是Twitter API v2版本的接口(包含你用到的关注关系类接口),该版本接口强制要求所有调用请求使用的密钥、令牌必须来自绑定了开发者项目的应用,不支持未绑定项目的独立应用调用
- 你请求时传入的认证凭证来自未绑定任何开发者项目的独立应用,平台身份校验时识别到该应用没有关联有效项目,因此返回
client-not-enrolled类型的禁止访问错误 - 该权限校验规则和你使用的OAuth 1.0认证方式无关,只要调用v2版本接口就必须满足项目绑定要求
解决方法
- 登录Twitter开发者后台,将当前使用的应用绑定到已有的开发者项目下;如果没有现成项目,先创建符合权限要求的Standard Basic等级项目即可满足普通关注关系接口的调用需求
- 应用绑定项目完成后,重新生成该应用对应的
Consumer Key、Consumer Secret、Access Token、Access Token Secret,替换你Angular 8项目中旧的认证参数 - 确认OAuth 1.0签名逻辑符合Twitter v2接口的签名规范,确保请求方法、路径、参数的拼接规则完全正确,避免修改参数后仍出现签名类错误
- 如果你不需要使用v2接口的新增特性,也可以将调用的接口切换为Twitter API v1.1版本的对应关注关系接口,v1.1版本对独立应用没有强制绑定项目的要求,无需调整后台配置即可正常调用
内容的提问来源于stack exchange,提问作者Radhika Solanki
相关产品推荐
相关产品推荐

