我刚刚创建了一个sendgrid帐户。然后我进入设置=>API密钥,点击“创建API密钥”并给予任何可能的权限。
然后我创建了一个C#项目,添加了NuGet包,并从这里编写了我的hello world代码。
在这个例子中,他们从
问题在于在创建密钥时没有人阅读消息,此外Microsoft选择显示“API Key ID”,这是最糟糕的名称。
这不是重复问题,因为尽管原因相同,但由于我们在c#中使用nuget库而不是api,因此没有人会猜到。
然后我创建了一个C#项目,添加了NuGet包,并从这里编写了我的hello world代码。
public async Task HelloEmail()
{
dynamic sg = new SendGrid.SendGridAPIClient("XXX-XXXXXXXXXXXXXXXXXX", "https://api.sendgrid.com");
Email from = new Email("MY@Email.com");
String subject = "Hello World from the SendGrid CSharp Library";
Email to = new Email("test@example.com");
Content content = new Content("text/plain", "Textual content");
Mail mail = new Mail(from, subject, to, content);
Email email = new Email("test2@example.com");
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\":\"提供的授权凭证无效、过期或被撤销\",\"field\":null,\"help\":null}]}"
在这个例子中,他们从
EnvironmentVariableTarget.User
获取了API密钥,这与此有关吗?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,因此没有人会猜到。