【问题标题】:How to send sms using C# and twilio API如何使用 C# 和 twilio API 发送短信
【发布时间】:2017-07-25 21:27:29
【问题描述】:

我正在尝试创建一个用户界面,用户可以在其中输入她的凭据和电话号码,并使用 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 平台

谢谢

【问题讨论】:

标签: c# visual-studio sms twilio twilio-api


【解决方案1】:

我最终解决了我的问题

所以这不适用于 VS2015 平台:

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

即使我已经使用 nuget 控制台安装了 Twilio api 版本 4.7.2

我又做了以下事情:

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

我不知道为什么它不起作用

P.S:我不确定它是否相关,但我也使用 NUGET 控制台安装了它,它可能会有所帮助,或者可能没有,但我觉得我不得不提及它:

Install-Package RestSharp 

【讨论】:

    【解决方案2】:

    看看你是否能从下面的代码中得到任何帮助:

    /// <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;
        }
    

    【讨论】:

    • 感谢您提出这个建议,但正如我所提到的,即使在 try/catch 块中也没有捕获到错误我无法理解为什么它没有被发送
    • @napi15 检查更新的代码是否对您有任何帮助。
    • 是的,它帮助了我,问题是 Twilio.SendMessage() ;不知道为什么不工作,但是当我使用 var message = MessageResource.Create(to:Number ,From:Number :FromNumber, body:Message.toString(); ...... .消息被抛出.....所以我的结论是过时的代码和过时的库是原因
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 2019-03-26
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多