You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OAuth获取Notion API的Access Token时遭遇invalid_client错误

解决Notion OAuth获取access_token时的invalid_client错误

以下是针对该问题的具体排查方向:

  • 检查请求参数的URL编码
    确保redirect_uri及其他含特殊字符的参数完成了URL编码,比如包含&、=或中文的URL必须转义。Postman等工具会自动处理编码,但手动构造请求时容易遗漏,这是常见触发invalid_client的原因。

  • 严格校验Content-Type请求头
    确认请求头的Content-Type严格为application/x-www-form-urlencoded,不能带有多余空格,也不能误写为application/json或multipart/form-data。部分HTTP库会默认修改该头,需手动强制指定。

  • 核对参数名的拼写与格式
    所有参数名必须完全匹配要求:client_id、client_secret、redirect_uri、grant_type、code,注意是下划线分隔而非驼峰式(如不能写成clientId);grant_type必须严格为authorization_code,不能有拼写错误。

  • 确认请求体的提交方式
    必须以表单形式提交参数,不能将参数放在URL查询串中,也不能用JSON格式发送请求体。错误的提交方式会导致Notion服务器无法正确解析客户端凭证。

  • 排查凭证复制时的隐形字符
    即使确认Client ID和Secret正确,也要检查是否在复制时带入了多余的空格、换行符或不可见字符。建议直接从Notion开发者控制台复制后,粘贴到纯文本编辑器中验证。

  • 对比Postman的请求细节
    使用Postman的「Copy as cURL」功能导出正常工作的请求命令,与你自己的请求对比差异。比如导出的cURL可能是:

    curl --location --request POST 'https://api.notion.com/v1/oauth/token' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'client_id=YOUR_CLIENT_ID' \
    --data-urlencode 'client_secret=YOUR_CLIENT_SECRET' \
    --data-urlencode 'redirect_uri=YOUR_REDIRECT_URL' \
    --data-urlencode 'grant_type=authorization_code' \
    --data-urlencode 'code=THE_PROVIDED_CODE'
    

    通过对比可快速定位编码、请求头或提交方式的差异。

  • 验证重定向URL的完全匹配
    Notion要求redirect_uri必须与开发者控制台注册的URL完全一致,包括协议(http/https)、端口、路径,甚至结尾的斜杠。比如注册的是https://example.com/callback,就不能使用https://example.com/callback/或http://example.com/callback。

内容的提问来源于stack exchange,提问作者Chad Hutchins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 07:40:40