我正在使用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-urlencode
curl 选项而不是-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""