使用OAuth 2.0获取Upwork API授权码遇403错误求助
解决Upwork API OAuth2授权码获取403问题
核心错误纠正:请求参数传递方式错误
Upwork的OAuth2授权码端点(https://www.upwork.com/ab/account-security/oauth2/authorize)仅接受URL查询参数传递参数,GET请求的参数不能放在请求体(不管是x-www-form-urlencoded还是form-data格式),这是你收到403的主要原因。
正确的请求URL格式应该是:
https://www.upwork.com/ab/account-security/oauth2/authorize?response_type=code&client_id=你的客户端ID&redirect_uri=你的回调地址
关于X-Upwork-API-TenantId请求头的作用
这个请求头仅针对企业级API调用或特定团队场景,用于指定租户ID。普通第三方应用获取授权码的步骤中不需要添加这个头,你的403问题和它无关。如果是企业用户需要使用,需从Upwork后台获取对应租户ID后再添加。
完整的Upwork OAuth2访问令牌获取流程
构造授权URL并发起授权
把response_type=code、client_id、redirect_uri三个参数拼接到授权端点的URL查询串中,在浏览器中打开该URL(不建议用Postman直接发GET请求,因为需要用户登录Upwork账号完成授权操作)。获取授权码
登录Upwork账号并授权你的应用后,页面会重定向到你在开发者后台配置的redirect_uri,此时URL中会携带code参数,这就是你需要的授权码。用授权码换取访问令牌
向https://www.upwork.com/api/v3/oauth2/token发送POST请求,参数采用x-www-form-urlencoded格式,包含以下字段:grant_type=authorization_codecode=第一步获取的授权码client_id=你的客户端IDclient_secret=你的客户端密钥redirect_uri=与授权步骤一致的回调地址
额外注意事项
- 确保
redirect_uri和你在Upwork开发者后台配置的地址完全一致(包括协议、域名、路径,大小写和结尾斜杠都不能有差异) - 确认你的应用已通过Upwork的审核,且配置的API权限范围符合需求
内容的提问来源于stack exchange,提问作者lss555
相关产品推荐
相关产品推荐

