Отмена BatchId в SendGrid с использованием C# APIC#

Место общения программистов C#
Ответить
Anonymous
 Отмена BatchId в SendGrid с использованием C# API

Сообщение Anonymous »

В настоящее время я реализую серию вызовов API, которые будут планировать электронную почту через API SendGrid. Таким образом, эти электронные письма будут поступать в список рассылки, и их может потребоваться перенести в зависимости от потребностей бизнес-пользователей. Таким образом, я пытался присвоить BatchId SendGridMessage, а затем отменить это сообщение, используя BatchId.
К сожалению, я продолжаю получать либо коды ошибок, либо результаты API, который не совсем имеет смысла. Например, я успешно планирую электронную почту (я знаю, что это успешно, потому что я получаю электронное письмо, когда наступает время. Я также знаю, что идентификатор пакета отправляется вместе с сообщением, потому что я устанавливаю категории). После планирования я смогу получить идентификатор пакета и отменить его. Но я получаю недопустимое сообщение об ошибке Batch_id. Поэтому я запускаю команду GET, чтобы проверить запланированные_отправки, и ничего не возвращается.
Пожалуйста, просмотрите код ниже и дайте мне знать, если у вас возникнут какие-либо вопросы или проблемы. Спасибо.
Код C#, взаимодействующий с пакетом C# SendGrid

Код: Выделить всё

    message.BatchId = sendGridBatchID;

if (sendAt != 0)
{
message.SendAt = sendAt;
}
var apiKey = _configuration.GetSection("NewSendGridAPIKey").Value;
var client = new SendGridClient(apiKey);
var response = await client.SendEmailAsync(message).ConfigureAwait(false);
return response.IsSuccessStatusCode;
Код C# для создания нового идентификатора пакета

Код: Выделить всё

        string apiKey = GetAPIKey();
SendGridClient client = GetSendGridClient(apiKey);
var batchId = default(string);

var response = await client.RequestAsync(method: SendGridClient.Method.POST, urlPath: "mail/batch");
if (response.StatusCode == HttpStatusCode.Created)
{
JObject joResponse = JObject.Parse(response.Body.ReadAsStringAsync().Result);
batchId = (((Newtonsoft.Json.Linq.JValue)joResponse["batch_id"]).Value).ToString();
}
return batchId;
Команда Curl, чтобы узнать, можно ли отменить запланированный пакет

Код: Выделить всё

curl --location --request POST 'https://api.sendgrid.com/v3/user/scheduled_sends' \
--header 'Authorization: Bearer ' \
--header 'Content-Type: application/json' \
--data-raw '{
"batch_id": "",
"status":"cancel"
}'
Вернуть результат приведенной выше команды Curl

Код: Выделить всё

{"errors": [{
"field": "batch_id",
"message": "invalid batch id"
}]}
Изменить: общая концепция рабочего процесса
Создать идентификатор пакета электронной почты --> Запланировать отправку электронной почты с идентификатором пакета --> (длительное ожидание) --> Пользователь хочет отменить пакет --> Отменить электронное письмо с предыдущим идентификатором пакета --> Создайте новый идентификатор пакета и перепланируйте существующее электронное письмо.

Подробнее здесь: https://stackoverflow.com/questions/716 ... -sharp-api
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»