我剛剛創建了一個sendgrid帳戶。然後我去設置=> API鍵 ,並點擊「創建API密鑰」,並給了任何可能的權限。Sendgrid API:提供的授權許可無效,已過期或已被撤銷
然後我創建了一個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();
}
把我寫的Hello世界中的代碼,但我得到
未經授權=>
「 {\「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);
*的問題是,沒有人讀取消息創建密鑰的時候,也是微軟選擇向我們展示了「API密鑰ID」,這是最糟糕的名字永遠
它不是一個重複,因爲雖然原因是一樣的,但沒有人會猜測它,因爲在c#中我們使用了一個nuget庫,而不是api。
[Send Grid似乎阻止我的節點js服務器發送電子郵件]的可能的副本(http://stackoverflow.com/questions/34789622/send-grid-seems-to-be-preventing-my-node-js -server-sending-emails) – bwest
@bwest它不是重複的,因爲我們使用了nuget庫,而在另一個問題中他們使用了api。所以雖然答案是一樣的,但問題是不同的,沒有人會猜測它,除非他知道問題,或者讀取正確的問題 –
無論語言如何,它都是相同的確切錯誤消息,根本原因和解決方案,因此它是相同的根本問題。這是SO上重複的標準。但是我們會看看mods的功能。 – bwest