2016-06-20 30 views
0

これは私が使用しているコードです。なんらかの理由で、「unauthorized」というエラーが表示されます。なぜこのようなことが起こっているのでしょうか。 Apiキーが正しく設定されています。このコード行でSendGrid V3 api with C#メールを送信できません

String apiKey = Environment.GetEnvironmentVariable("SG.7cSY-INMQnCwIzmonlgZvA.zNtNDycx......", EnvironmentVariableTarget.User); 
      dynamic sg = new SendGrid.SendGridAPIClient(apiKey, "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); 

      String ret = mail.Get(); 

      string requestBody = ret; 
      Console.WriteLine(ret); 

      try 
      { 
       dynamic response = sg.client.mail.send.beta.post(requestBody: requestBody); 
       Console.WriteLine(response.StatusCode); 
       Console.WriteLine(response.Body.ReadAsStringAsync().Result); 
       Console.WriteLine(response.Headers.ToString()); 
      } 
      catch (Exception ex) { 
       Console.WriteLine("SendGrid Error: {0}",ex.Message); 
      } 

答えて

0

String apiKey = Environment.GetEnvironmentVariable("SG.7cSY-INMQnCwIzmonlgZvA.zNtNDycx......", EnvironmentVariableTarget.User); 

最初のパラメータは、あなたのSendGrid APIキーの値を保持している環境変数の名前で、ユーザーのアカウントにスコープ。環境変数を使用しておらず、あなたのコードにAPIキーを入れても問題がない場合は(推奨されていませんが、これが動作することをテストできます)、次のようにします:

String apiKey = "SG.7cSY-INMQnCwIzmonlgZvA.zNtNDycx......"; 
+0

間違っている: 'EnvironmentVariable'と' AppSettings'は非常に似ています。しかし、 'EnvironmentVariable'を使うと、異なるユーザに異なるAPIキー(異なる設定)を保存することができます。 –

+1

私はAppSettingsに慣れていません。 EnvironmentVariableについては、現在のユーザーのスペースまたはシステム全体から値を取得することができます。上のコードでは、ユーザー空間に環境変数を設定すると仮定しています。 –

関連する問題