Использование cfhttp для публикации в API

В данный момент я играю с Singly API, и примеров ColdFusion НЕТ (насколько я могу см., а я просмотрел много результатов поиска Google!) Итак, я пытаюсь «обмануть» свой путь через это.

Что-то я наткнулся на камень преткновения. Я подозреваю, что это не относится к Singly, но я просто не могу понять синтаксис. Я специально застрял на авторизации. Я дошел до того, что сделал второй пост, в котором говорится в документах:

Затем вы сделаете сообщение обратно на:

https://api.singly.com/oauth/access_token

Со следующими параметрами в теле:

client_id Ваш идентификатор клиента Singly OAuth 2
client_secret Ваш секретный код клиента Singly OAuth 2
code код, который был передан обратно в указанном выше URL

В настоящее время я продолжаю получать сообщение об ошибке "нет такого приложения" - я подозреваю, это связано с тем, что я неправильно отправляю данные, потому что, если я запускаю запрос вручную (используя те же данные), он работает отлично.

Часть, с которой я застрял, - это то, как я форматирую все, предположительно, в cfhttpparam с типом body. Я знаю, что могу использовать тип тела только один раз в вызове cfhttp. Нет никаких указаний на то, что данные должны быть отправлены в формате JSON и т. д.

Огромное спасибо


person Lee    schedule 03.10.2012    source источник
comment
Вы пытались передать client_id и client_secret как type=header? Я знаю, что это не так, но у меня была похожая проблема с API, и это решило мою проблему.   -  person Matt Busche    schedule 03.10.2012
comment
Спасибо за предложение - это не сработало, но оно указало мне вместо этого попробовать отправить как formFields - что ДЕЙСТВИТЕЛЬНО работает.   -  person Lee    schedule 03.10.2012


Ответы (1)


Для удобства всех, кто ищет, Мэтт Буше предложил отправлять их в виде заголовков. Это не сработало, но посоветовало мне попробовать отправить их как formFields, что ДЕЙСТВИТЕЛЬНО работало. Вот рабочий код:

<cfhttp method="POST" url="https://api.singly.com/oauth/access_token">
    <cfhttpparam type="formField" name="client_id" value="my_client_id">
    <cfhttpparam type="formField" name="client_secret" value="my_client_secret">
    <cfhttpparam type="formField" name="code" value="#url.code#">
</cfhttp>
person Lee    schedule 03.10.2012