Я только что создал учетную запись sendgrid. Затем я перешел к настройкам => Ключи API и нажал «Создать ключ API» и дал любое возможное разрешение.API Sendgrid: предоставленный грант на предоставление прав недействителен, истек или отменен
Тогда я создал C# проект, добавил NuGet пакеты и поместить мой записи в привет мир код из here
public async Task HelloEmail()
{
dynamic sg = new SendGrid.SendGridAPIClient("XXX-XXXXXXXXXXXXXXXXXX", "https://api.sendgrid.com");
Email from = new Email("[email protected]");
String subject = "Hello World from the SendGrid CSharp Library";
Email to = new Email("[email protected]");
Content content = new Content("text/plain", "Textual content");
Mail mail = new Mail(from, subject, to, content);
Email email = new Email("[email protected]");
mail.Personalization[0].AddTo(email);
dynamic response = await sg.client.mail.send.post(requestBody: mail.Get());
var x=response.StatusCode;
var y = response.Body.ReadAsStringAsync().Result;
var z = response.Headers.ToString();
}
Но я получаю
Несанкционированное =>
" {\ "errors \": [{\ "message \": \ "Предоставленный грант разрешения недействителен, истек или отменен \", \ "поле \": null, \ "help \": null}]} "
В примере они получили ключ API от EnvironmentVariableTarget.User
, он связан с этим?
string apiKey = Environment.GetEnvironmentVariable("NAME_OF_THE_ENVIRONMENT_VARIABLE_FOR_YOUR_SENDGRID_KEY", EnvironmentVariableTarget.User);
dynamic sg = new SendGridAPIClient(apiKey);
* Проблема заключается в том, что никто не читает сообщения при создании ключа, а также Microsoft хочет показать нам «API Key ID», который является худшим имя когда-либо
Это не дубликат, потому что хотя причина была одна и та же, никто не догадается, так как в C# мы используем библиотеку nuget, а не api.
Возможный дубликат [Send Grid, кажется, предотвращает отправку сообщений по электронной почте моему узлу js] (http://stackoverflow.com/questions/34789622/send-grid-seems-to-be-preventing-my-node-js -server-send-emails) – bwest
@bwest это не дубликат, так как мы используем библиотеку nuget, а в другом вопросе они использовали api. Поэтому, хотя ответ один и тот же, вопросы разные, и никто не догадается, если он не знает проблему, или читает правильный вопрос. –
Это то же точное сообщение об ошибке, первопричина и решение, независимо от языка, поэтому это одно и то же фундаментальная проблема. Это критерии дублирования на SO. Но мы посмотрим, что делают моды. – bwest