TikTok OAuth v2请求参数格式错误问题排查求助
TikTok API v2 OAuth Token接口报错:invalid_request 解决方法
问题说明
从TikTok API v1迁移到v2版本时,调用https://open.tiktokapis.com/v2/oauth/token/接口持续返回错误:
{"error": "invalid_request","error_description": "The request parameters are malformed.","log_id": "202308141814065FE27A58513347021AF1"}
官方针对该log_id的回复是「请求未设置grant type」,但已在Postman中使用application/x-www-form-urlencoded格式的请求头,仍无法解决问题。
用于获取授权code的URL为:https://www.tiktok.com/v2/auth/authorize/?client_key=abcdefg&scope=user.info.basic,user.info.profile,user.info.stats,video.list&response_type=code&state=abcdefg&redirect_uri=https://www.test.com/redirect
解决步骤
核心问题:grant_type是表单参数,不是请求头字段
即便请求头设置了application/x-www-form-urlencoded,仍需在请求的表单体中添加以下必填参数:grant_type: 固定填authorization_code(授权码模式获取token的必填值)client_key: 与授权URL中一致的应用client keyclient_secret: 你的应用client secret(v1可能无需此参数,但v2 OAuth接口必须提供)code: 授权流程中获取到的code值redirect_uri: 必须和授权URL中的redirect_uri完全一致
Postman具体设置
- 请求方法选择
POST - 请求头确认包含
Content-Type: application/x-www-form-urlencoded - 切换到
Body标签,选择x-www-form-urlencoded类型,逐一填入上述参数 - 检查所有参数值无多余空格或特殊字符,尤其是redirect_uri要完全匹配授权时的配置
- 请求方法选择
额外排查项
- 确认client_secret是否正确,v2 OAuth接口强制验证该参数,v1可能无此要求
- 检查code是否过期(TikTok授权code有效期通常为5分钟),过期需重新发起授权获取新code
- 确认scope参数与授权时一致,避免权限不匹配导致的参数错误
内容的提问来源于stack exchange,提问作者Andrew Chow
相关产品推荐
相关产品推荐

