如何使用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平台
谢谢
看看你是否可以从下面的代码任何帮助:
/// <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
@ napi15检查更新的代码可以帮助你以任何方式。 – Sameer
是的,它帮助我和问题是,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
他们的文档看起来非常直截了当。 https://www.twilio.com/docs/quickstart/csharp/sms/sending-via-rest – Nico
所以,从那里你想采取Twilio“SSID”和“令牌”,从文本框或环境变量? –