使用LinkedIn API通过code获取access_token时遇请求被拒问题
解决LinkedIn OAuth获取access_token时的请求被拒问题
针对你遇到的获取access_token时请求被拒(提示异常网络流量)的问题,可从以下几个方向排查解决:
1. 修正redirect_uri格式
你的代码中redirect_uri使用的是mydomain/linkedin,LinkedIn要求该参数必须是完整的带协议的URL(如https://yourdomain.com/linkedin),且必须与你在LinkedIn开发者平台配置的授权回调地址完全一致(包括协议、域名、路径,大小写敏感)。
2. 添加合法的User-Agent请求头
LinkedIn的API会对无标识或异常的请求头进行拦截,给请求添加标准的浏览器User-Agent:
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36' } r = requests.post( "https://www.linkedin.com/oauth/v2/accessToken", data={ 'grant_type': 'authorization_code', 'code': code, 'client_id': client_id, 'client_secret': client_secret, 'redirect_uri': 'https://mydomain.com/linkedin' # 替换为完整URL }, headers=headers )
3. 排查请求频率与网络环境
错误提示提到"unusual traffic",可能是测试时请求过于频繁触发了LinkedIn的反机制:
- 暂停测试10-15分钟后再尝试;
- 更换网络环境(如切换到不同IP或使用合规代理);
- 确保每次请求使用的
code是全新、未被使用过的(authorization code为一次性有效)。
4. 验证核心参数正确性
- 确认
client_id和client_secret与LinkedIn开发者应用中的信息完全匹配,无拼写错误或多余空格; - 检查
grant_type参数值严格为authorization_code,不能有拼写错误。
内容的提问来源于stack exchange,提问作者7thCode Chef
相关产品推荐
相关产品推荐

