【发布时间】:2011-07-24 23:38:43
【问题描述】:
有没有办法使用 Web API 从 ASP.NET 网站发送 SMS?我知道网络服务,但不知道如何从我的应用中调用这些服务。
【问题讨论】:
有没有办法使用 Web API 从 ASP.NET 网站发送 SMS?我知道网络服务,但不知道如何从我的应用中调用这些服务。
【问题讨论】:
Web 服务是最好的方法。我在一个网站上使用 Twilio,它的设置和工作非常容易。可扩展性不是问题,而且您无需花费开发人员时间来构建自己的解决方案,这不仅可以弥补成本。
Twilio:http://www.twilio.com/
可用于 .NET 的 Twilio 库:https://www.twilio.com/docs/csharp/install
来自 twilio-csharp 项目,这里是如何发送 SMS 的示例(我从 twilio-csharp 中获取了这个。只是重新发布它以显示它是多么容易)
static void Main(string[] args)
{
TwilioRestClient client;
// ACCOUNT_SID and ACCOUNT_TOKEN are from your Twilio account
client = new TwilioRestClient(ACCOUNT_SID, ACCOUNT_TOKEN);
var result = client.SendMessage(CALLER_ID, "PHONE NUMBER TO SEND TO", "The answer is 42");
if (result.RestException != null) {
Debug.Writeline(result.RestException.Message);
}
}
【讨论】:
我想我告诉你你很幸运有点晚了,但对于那些后来发现这篇文章的人,我制作了一个视频,展示如何使用你的 Twilio 帐户和 asp.net 发送短信:
i walk you through sending a text message using twilio and asp.net c#
如果您没有 10 分钟的时间观看视频,这里是代码:
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using Twilio;
namespace TwilioSMSHowTo
{
public partial class _default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void SendMessage_OnClick(object sender, EventArgs e)
{
string ACCOUNT_SID = ConfigurationManager.AppSettings["ACCOUNT_SID"];
string AUTH_TOKEN = ConfigurationManager.AppSettings["AUTH_TOKEN"];
TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);
client.SendMessage("(502) 276-8990", ToNumber.Text, Message.Text);
}
}
}
要使此代码正常工作,您需要 nuGet Twilio API 并需要将 my configurationmanager.appsettings 内容替换为您的帐户 ID 和身份验证令牌。
编码愉快!
【讨论】:
与其使用 Twilio API,不如使用其他 SMS 服务提供商 Way2Sms.com,我认为以下代码会对您有所帮助:
public void sendsms(object sender, EventArgs e)
{
if (Page.IsValid)
{
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://ubaid.tk/sms/sms.aspx?uid=" + yourmobilenumber + "&pwd=" + yourpassword + "&msg=" + body.Text + "&phone=" + recipientNo.Text + "&provider=way2sms");
HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();
System.IO.StreamReader respStreamReader = new System.IO.StreamReader(myResp.GetResponseStream());
string responseString = respStreamReader.ReadToEnd();
respStreamReader.Close();
myResp.Close();
}
}
【讨论】: