Invalid_grant使用 cURL 连接到具有 OAuth 2.0 和 Filemaker 的 Xero 时



我正在使用FileMaker Pro将数据库从使用OAuth 1.0a更新为2.0以用于Xero但遇到了问题。

我可以成功授权应用程序(步骤 1(并解析返回的代码和状态。 然后,我需要将代码发送回具有特定标头和正文的令牌终结点 (https://identity.xero.com/connect/token(。这就是我卡住的地方。

以下是需要的内容:包含以下内容的 POST 请求

标题 1:

Authorization: "Basic " + base64encode(client_id + ":" + client_secret)
Header 2:
Content-Type: application/x-www-form-urlencoded

请求正文:

grant_type=authorization_code
&code=xxxxxx
&redirect_uri=https://redirecturl.com

我在Filemaker中所做的是一个具有以下cURL选项的"Insert from URL":(以及作为指定 URL 的Xero令牌端点(

"-X POST" &
" -H "Content-Type: application/x-www-form-urlencoded"" &
" -H "Authorization: Basic "& Base64EncodeRFC (4648; token::client_id &":"& token::client_secret ) & """ &
" -d grant_type=authorization_code&code="&token::code&"&redirect_uri=https://redirecturl.com"

但是,在运行脚本时,它总是响应错误,invalid_grant。

我检查了一下,99%确定重定向网址在整个过程中是一致的

我是cURL新手,并假设我的语法中一定有一些我无法弄清楚的东西,并且非常感谢关于它可能是什么的想法以及任何帮助!

谢谢堆

尝试使用--data-urlencodecurl 选项而不是-d。您可能希望将每个查询参数放在 cURL 计算中自己的行中。

像这样:

"-X POST" &
" -H "Content-Type: application/x-www-form-urlencoded"" &
" -H "Authorization: Basic " & Base64EncodeRFC (4648; token::client_id &":"& token::client_secret ) & """ &
" --data-urlencode "grant_type=authorization_code"" &
" --data-urlencode "code=" & token::code & """ &
" --data-urlencode "redirect_uri=https://redirecturl.com""

相关内容

  • 没有找到相关文章

最新更新