Invalid_grant при использовании cURL для подключения к Xero с OAuth 2.0 и Filemaker - PullRequest
0 голосов
/ 20 января 2020

Я использую FileMaker Pro для обновления базы данных с OAuth 1.0a до 2.0 для использования с Xero, но столкнулся с проблемой.

Я могу успешно авторизовать приложение (шаг 1) и разобрать возвращенный код и состояние. Затем мне нужно отправить код обратно в конечную точку токена (https://identity.xero.com/connect/token) с указанными c заголовками и телом. Вот где я застрял.

Вот что нужно: 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, это "Insert from URL" со следующими параметрами cURL: (И конечная точка токена Xero в качестве указанного URL)

"-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% уверен, что URL перенаправления согласован на протяжении всего процесса

Я новичок в cURL и предполагаю, должно быть что-то с моим синтаксисом, которое я не могу понять, и идеи о том, что это могло бы быть и любая помощь, с благодарностью!

Спасибо, куча

1 Ответ

0 голосов
/ 21 января 2020

Попробуйте использовать параметр --data-urlencode curl вместо -d. И вы можете захотеть поместить каждый параметр запроса в отдельную строку в cURL cal c.

Примерно так:

"-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\""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...