Получение ключей API SendGrid для работы с ColdFusion

#coldfusion #sendgrid #sendgrid-api-v2

# #coldfusion #sendgrid #sendgrid-api-v2

Вопрос:

У меня возникли проблемы с интеграцией моего приложения ColdFusion с API Sendgrid v2 с использованием ключей API. Мое решение годами работало с использованием имени пользователя / пароля, но при переключении на ключи API что-то не так, что я не могу понять. Я пробовал несколько разных конфигураций, но пока ни одна из них не работала:

 <cfhttp method="POST" url="https://sendgrid.com/api/mail.send.json?api_user=apikeyamp;api_key=[my key]" resolveurl="no" timeout="60" result="mailSent">
<cfhttpparam type="formField" name="to" value="to@email.com">
<cfhttpparam type="formField" name="from" value="from@email.com">
<cfhttpparam type="formField" name="fromname" value="Test User">
<cfhttpparam type="formField" name="subject" value="Test Send">
<cfhttpparam type="formField" name="text" value="This is a test">
</cfhttp>
 
 <cfhttp method="POST" url="https://sendgrid.com/api/mail.send.json" resolveurl="no" timeout="60" result="mailSent">
<cfhttpparam type="formField" name="to" value="to@email.com">
<cfhttpparam type="formField" name="from" value="from@email.com">
<cfhttpparam type="formField" name="fromname" value="Test User">
<cfhttpparam type="formField" name="subject" value="Test Send">
<cfhttpparam type="formField" name="text" value="This is a test">
<cfhttpparam type="formField" name="api_user" value="apikey">
<cfhttpparam type="formField" name="api_key" value="[my key]">
</cfhttp>
 
 <cfhttp method="POST" url="https://sendgrid.com/api/mail.send.json" resolveurl="no" timeout="60" result="mailSent">
<cfhttpparam type="formField" name="to" value="to@email.com">
<cfhttpparam type="formField" name="from" value="from@email.com">
<cfhttpparam type="formField" name="fromname" value="Test User">
<cfhttpparam type="formField" name="subject" value="Test Send">
<cfhttpparam type="formField" name="text" value="This is a test">
<cfhttpparam type="header" name="api_user" value="apikey">
<cfhttpparam type="header" name="api_key" value="[my key]">
</cfhttp>
 
 <cfhttp method="POST" url="https://sendgrid.com/api/mail.send.json" resolveurl="no" timeout="60" result="mailSent">
<cfhttpparam type="formField" name="to" value="to@email.com">
<cfhttpparam type="formField" name="from" value="from@email.com">
<cfhttpparam type="formField" name="fromname" value="Test User">
<cfhttpparam type="formField" name="subject" value="Test Send">
<cfhttpparam type="formField" name="text" value="This is a test">
<cfhttpparam type="cgi" name="api_user" value="apikey">
<cfhttpparam type="cgi" name="api_key" value="[my key]">
</cfhttp>
 

Помогите?

Ответ №1:

Думаю, я понял это. Покопавшись в этой кодовой базе:

https://github.com/mjclemente/sendgrid.cfc/blob/master/sendgrid.cfc

… похоже, синтаксис должен быть:

 <cfhttp method="POST" url="https://sendgrid.com/api/mail.send.json" resolveurl="no" timeout="60" result="mailSent">
<cfhttpparam type="formField" name="to" value="to@email.com">
<cfhttpparam type="formField" name="from" value="from@email.com">
<cfhttpparam type="formField" name="fromname" value="Test User">
<cfhttpparam type="formField" name="subject" value="Test Send">
<cfhttpparam type="formField" name="text" value="This is a test">
<cfhttpparam type="header" name="Authorization" value="Bearer [my key]">
</cfhttp>