Получение списка транзакционных шаблонов SendGrid
Я пытался получить список транзакционных шаблонов SendGrid с помощью API. Я использую правильный ключ API и получаю пустой массив, в то время как в моей учетной записи SendGrid существует около 5 транзакционных шаблонов. Вот ответ:
{
"templates": []
}
Есть догадки, что может быть не так?
3 ответа
Есть догадки, что может быть не так?
Да, их документация может быть!
Я также застрял с этой проблемой и, наконец, сумел ее решить, открыв devtools и увидев, как они запрашивают свой собственный API из пользовательского интерфейса. Короче говоря - нужно пройти дополнительное generations=dynamic
параметр запроса. Вот код C#, который я использую:
var client = new SendGridClient("key");
var response = await client.RequestAsync(
SendGridClient.Method.GET,
urlPath: "/templates",
queryParams: "{\"generations\": \"dynamic\"}");
Использование Api 7.3.0 PHP
require("../../sendgrid-php.php");
$apiKey = getenv('SENDGRID_API_KEY');
$sg = new \SendGrid($apiKey);
#Comma-delimited list specifying which generations of templates to return. Options are legacy, dynamic or legacy,dynamic
$query_params = json_decode('{"generations": "legacy,dynamic"}');
try {
#$response = $sg->client->templates()->get();
$response = $sg->client->templates()->get(null, $query_params);
echo $response->body();
exit;
} catch (Exception $e) {
echo '{"error":"Caught exception: '. $e->getMessage().'"}';
}
У меня была такая же проблема с использованием оболочки python, предоставленной Sendgrid. Мой код был похож на этот:
response = SendGridAPIClient(<your api key>).client.templates.get({'generations': 'legacy,dynamic'})
Это вернуло пустой массив.
Чтобы исправить, вы должны назвать параметр или передатьNone
перед диктом:
response = SendGridAPIClient(<your api key>).client.templates.get(None, {'generations': 'legacy,dynamic'})
или
response = SendGridAPIClient(<your api key>).client.templates.get(query_params={'generations': 'legacy,dynamic'})