如何解决Flow中HTTP操作获取Access Token失败问题(Postman正常)
我之前也碰到过类似的情况——Postman能正常拿到Azure AD的access token,但用Power Automate(Flow)的HTTP操作调用相同接口就报客户端密钥无效,大概率是Flow的配置细节没处理到位,给你几个排查方向:
检查客户端密钥的完整性与特殊字符处理
Azure AD的客户端密钥常包含+、/、=这类特殊字符,Postman会自动处理这些字符的URL编码,但Power Automate的HTTP操作直接粘贴时可能出现转义异常。你可以试试:- 重新从Azure AD应用注册页面复制完整密钥,确保没有多余的空格或换行符
- 如果密钥是Base64格式,尝试手动对密钥做URL编码后再填入Flow
确认HTTP请求的Content-Type头部
Azure AD的token端点要求请求必须使用application/x-www-form-urlencoded类型,Postman默认会自动设置,但Flow需要手动配置:
在Flow的HTTP操作里切换到「Headers」标签,添加键为Content-Type、值为application/x-www-form-urlencoded的头部,同时确保请求体选择「x-www-form-urlencoded」格式,而非raw或form-data。核对请求参数的格式与拼写
确保Flow的请求体里正确填写了所有必填参数,且键名无拼写错误:grant_type=client_credentials client_id=你的应用程序(客户端)ID client_secret=你的客户端密钥 resource=目标App Service的资源ID或URL重点注意
grant_type、client_id这类带下划线的键名,别漏写或写错符号。排查复制粘贴带来的不可见字符
有时候从Azure AD复制密钥到Flow时,会带入全角空格、隐藏换行这类不可见字符,导致密钥验证失败。你可以:- 先把密钥粘贴到纯文本编辑器(比如Notepad),清理掉多余字符后再复制到Flow
- 手动输入密钥的首尾几位,中间部分用复制,减少出错概率
确认客户端密钥的状态
虽然Postman能成功,但还是建议去Azure AD应用注册页面检查:- 密钥是否处于「启用」状态
- 密钥有没有过期(Azure AD默认密钥有效期为1年)
如果以上排查都没问题,可以把Flow的HTTP操作配置截图(隐去敏感信息)放出来,能更精准地定位问题。
内容的提问来源于stack exchange,提问作者Peter Rundqvist




