Получение списка транзакционных шаблонов 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'})
Другие вопросы по тегам