如何使用C#和twilio API发送短信

问题描述:

我试图创建一个使用Twilio API如何使用C#和twilio API发送短信

因此,作为解释我创建了账户的用户界面,用户可以在进入她的证件和电话号码,并发送信息给一些收件人并初始化认证密钥和令牌

private void button1_Click(object sender, EventArgs e) 
    { 
     string ssid = twilioSSIDBox.Text; 
     string token = twilioTokenBox.Text; 
     string number = twilioNumberBox.Text; 


     var client = new TwilioRestClient(Environment.GetEnvironmentVariable(ssid), Environment.GetEnvironmentVariable(token)); 
     client.SendMessage(number, "+158965220", "Teting API message!"); 

    } 

经过多个测试(硬编码的SSID和标记和号码)和文档咨询,仍然没有在Visual Studio平台上发出的消息,我没有收到任何错误信息或任何东西

所以我的问题是我失踪?我是否需要一个允许Visual Studio发送短信的特定库?

我使用Visual Studio 2015年和Windows 10平台

谢谢

+1

他们的文档看起来非常直截了当。 https://www.twilio.com/docs/quickstart/csharp/sms/sending-via-rest – Nico

+1

所以,从那里你想采取Twilio“SSID”和“令牌”,从文本框或环境变量? –

看看你是否可以从下面的代码任何帮助:

/// <summary> 
    /// Sends alert as SMS 
    /// </summary> 
    /// <param name="details"></param> 
    /// <returns></returns> 
    public static Message SendSms(DeliveryDetails details) 
    { 
     var messageResult = new Message(); 
     try 
     { 
      if (details?.ToNumber != null) 
      { 
       var toNumberList = details.ToNumber.ToList(); 
       if (toNumberList.Count > 0) 
       { 
        foreach (var toNumber in toNumberList) 
        { 
         messageResult = Twilio.SendMessage(FromNumber, toNumber, $"{details.Subject}\n\n{details.Message}"); 

         if (messageResult == null) 
         { 
          logger.Error(string.Format(
           "Error connecting to Twilio, message sending failed to {0}", 
           toNumber)); 
         } 
         else if (messageResult.RestException != null) 
         { 
          logger.Error(string.Format("Twilio Error Message Description - {0}", 
           messageResult.RestException.Message)); 
         } 
         else 
         { 
          logger.Info(String.Format("SMS {0} deliverd to {1}", messageResult.Body, messageResult.To)); 
         } 
        } 
       } 
       else 
       { 
        logger.Error("ToNumber List Empty"); 
       } 
      } 
      else 
      { 
       logger.Error("ToNumber List Null"); 
      } 
     } 
     catch (Exception e) 
     { 
      logger.Error(String.Format("An error occurred while sending the message\n{0}", e.Message)); 
     } 

     return messageResult; 
    } 
+0

感谢您推荐这一点,但正如我所说,没有即使在try/catch语句集团我不能明白捕获错误,为什么它没有被发送 – napi15

+1

@ napi15检查更新的代码可以帮助你以任何方式。 – Sameer

+1

是的,它帮助我和问题是,Twilio.SendMessage();不知道为什么,但是当我使用var message = MessageResource.Create(to:Number,From:Number:FromNumber,body:Message。的toString(); .............消息被扔了.....所以我的结论是过时的代码和过时的库是原因 – napi15

我结束了我的解决问题

所以这不适用于VS2015平台:

var client = new TwilioRestClient(Environment.GetEnvironmentVariable(ssid), Environment.GetEnvironmentVariable(token)); 
    client.SendMessage(number, "+158965220", "Teting API message!"); 

甚至以为我已经安装了Twilio API版本4.7.2再次使用的NuGet控制台

我做了以下内容:

Install-Package Twilio 

比Visual Studio的建议我引用添加到API里面的代码

using Twilio; 
using Twilio.Rest.Api.V2010.Account; 
using Twilio.Types; 

感谢以下Example

这工作:

TwilioClient.Init(accountSid, authToken); 

     var message = MessageResource.Create(
      to: new PhoneNumber(toNumber), 
      from: new PhoneNumber(FromNumber), 
      body: "Hello from C#"); 

所以我的结论可能是因为,当我用的NuGet安装一个过时的库:

Install-Package Twilio -Version 4.7.2 

我不知道为什么它不工作

PS :我不知道这是否是相关的,但我也安装了此使用的NuGet控制台它mighed帮助,也可能没有,但我觉得我不得不提到它:

Install-Package RestSharp