如何使用C#.NET和字母数字发送者ID发送没有电话号码的短信

293 阅读6分钟

你可以使用Twilio的超级网络快速购买一个电话号码,然后用这个电话号码来发送和接收短信。然而,并不是所有的应用都需要双向的信息传递。更重要的是,在很多用例中,单向信息传递更适合,例如:通知、警报和验证。对于这类场景,你应该考虑使用字母数字发送者ID

在本教程中,你将学习如何用C#、.NET和Twilio可编程短信从字母数字发送者ID发送短信;但首先...

什么是字母数字发送者ID

一个字母数字发件人ID(或阿尔法发件人)让你从一个由一组字母数字字符组成的发件人ID发送短信,而不是从一个电话号码发送。

使用Alpha Sender的最大好处是,你可以使用一个比电话号码更容易被用户识别的ID。下面的例子显示了Alpha Sender(AUTHMSG)的外观,而不是标准号码。

Two SMS conversations side-by-side. The SMS on the left originate from a phone number and the conversation on the right originates from an Alphanumeric Sender ID "AUTHMSG"

关于Alpha Sender,有几件事你应该知道:

  • ID最多可包含11个字符,由大、小写字母(A-Z)、数字(0-9)和空格组成。
  • 一个Alpha Sender可以在许多国家使用,而不需要为每个国家设置专门的电话号码--但并非所有国家都支持Alpha Sender,有些国家需要预先注册
  • 收件人不能回应从Alpha Sender发出的短信,这使得Alpha Sender和收件人之间的对话是单向的。

关于其他好处、限制和指导,请阅读关于Twilio可编程短信的字母数字发送器ID的支持文章

在Twilio中配置一个字母数字发送者ID

从字母数字发送器发送短信的推荐方法是在Twilio中使用一个消息服务。要创建一个信息服务,请登录Twilio控制台,点击左侧导航菜单中的探索产品。在探索产品页面,找到并点击消息服务产品。然后,在左侧的导航菜单中,点击Messaging 子菜单下的Services。在信息服务页面,点击创建信息服务,这将引导你进入一个多步骤的向导。

第1步,在信息传递服务的友好名称中输入一个有意义的名称,然后点击创建信息传递服务

Step 1 "Create Messaging Service" of the Messaging Service Setup wizard. This step has a form with one required field: Messaging Service friendly name. There"s a "Create Messaging Service" button which takes you to the next step.

第2步,在发送者类型下拉菜单中选择**"Alpha发送者**"选项,并点击继续。接下来,在阿尔法发件人ID字段中输入你想要的ID。这将是显示给收件人的ID,而不是一个电话号码。

A form to add an Alphanumeric Sender ID to the senders of a messaging service. The form contains one required field, the Alpha Sender ID field.

点击添加阿尔法发件人,然后点击"第3步:设置整合"。

第3步让你配置如何处理传入的信息。阿尔法发件人不能接收信息,所以你可以忽略这一步,转到**"第4步:添加合规信息**"。

在第4步,如果你的使用情况需要,请按照描述的步骤添加合规信息。

最后,单击 "完成消息服务设置"。

你会被提示从控制台进行测试;你也可以通过浏览控制台的菜单来达到这个目的。信息传递 > 尝试一下 > 发送短信。
你可能会看到一个警告信息,说没有为这个消息服务配置电话号码,你可以安全地忽略它。

会有一个cURL命令,你可以复制/粘贴到你的终端。如果你使用测试界面或cURL命令向你的电话号码发送短信,你应该会收到来自你的Alpha Sender ID的短信。注意,你不能回复。

获取你的Twilio配置

你需要从Twilio获得一些配置元素,以便从C#中发送短信。回到Twilio控制台,点击左侧导航菜单中的信息服务下的属性链接,然后记下你的信息服务SID。你以后会需要它。

然后,点击左上角的账户链接,回到Twilio控制台的开始页面,注意位于页面左下方的Twilio账户SID授权令牌

Account Info box holding 3 read-only fields: Account SID field, Auth Token field, and Twilio phone number field.

你需要把这个Twilio配置配置成环境变量,因为项目会需要它们。打开你喜欢的shell,用以下命令设置这些环境变量。

如果你使用的是Bash或类似的shell:

export ToPhoneNumber=[RECIPIENT_PHONE_NUMBER]
export TwilioAccountSid=[TWILIO_ACCOUNT_SID]
export TwilioAuthToken=[TWILIO_AUTH_TOKEN]
export TwilioMessagingServiceSid=[TWILIO_MESSAGING_SERVICE_SID]

如果你使用的是PowerShell

$Env:ToPhoneNumber = "[RECIPIENT_PHONE_NUMBER]"
$Env:TwilioAccountSid = "[TWILIO_ACCOUNT_SID]"
$Env:TwilioAuthToken = "[TWILIO_AUTH_TOKEN]"
$Env:TwilioMessagingServiceSid = "[TWILIO_MESSAGING_SERVICE_SID]"

如果你使用的是CMD

set "ToPhoneNumber=[RECIPIENT_PHONE_NUMBER]"
set "TwilioAccountSid=[TWILIO_ACCOUNT_SID]"
set "TwilioAuthToken=[TWILIO_AUTH_TOKEN]"
set "TwilioMessagingServiceSid=[TWILIO_MESSAGING_SERVICE_SID]"

在每种情况下:

  • 用你想发短信的电话号码替换[RECIPIENT_PHONE_NUMBER] 。这个电话号码必须来自一个支持字母数字发件人ID的国家。如果你要给另一个国家的号码发短信,请确保在信息地理权限中启用该国家
  • 用你之前注意到的账户SID授权令牌短信服务SID替换[TWILIO_ACCOUNT_SID],[TWILIO_AUTH_TOKEN], 和[TWILIO_MESSAGING_SERVICE_SID]

用C#和.NET从字母数字发送者ID发送短信

配置完成后,是时候写一些C#代码了!通过运行以下命令,使用.NET CLI创建一个新的控制台项目:

dotnet new console -o SendAlphaSms

这将在一个名为SendAlphaSms的新文件夹中创建一个新的控制台项目。通过运行以下命令导航到SendAlphaSms文件夹中:

cd SendAlphaSms

在.NET中开始使用Twilio的最好方法是添加Twilio SDK for C# and .NET。使用.NET CLI添加Twilio NuGet包

dotnet add package Twilio

在你喜欢的.NET编辑器中打开该项目,并打开Program.cs文件。然后,用下面的内容替换现有的代码:

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

var toPhoneNumber = Environment.GetEnvironmentVariable("ToPhoneNumber");
var twilioAccountSid = Environment.GetEnvironmentVariable("TwilioAccountSid");
var twilioAuthToken = Environment.GetEnvironmentVariable("TwilioAuthToken");
var twilioMessagingServiceSid = Environment.GetEnvironmentVariable("TwilioMessagingServiceSid");

// authenticate with Twilio
TwilioClient.Init(twilioAccountSid, twilioAuthToken);

// send SMS using a Messaging Service
MessageResource.Create(
        to: new PhoneNumber(toPhoneNumber),
        messagingServiceSid: twilioMessagingServiceSid,
        body: "Hello from your Alpha sender 👏"
);

该代码从环境变量中抓取配置,然后与Twilio进行认证,最后使用你的信息服务发送短信,这将使用你的Alpha Sender。

通过使用.NET CLI运行应用程序来尝试:

dotnet run

如果你输入了你的电话号码,你现在就会收到一条来自你的Alpha Sender的文本信息干得好 🎉

接下来的步骤

恭喜你学会了如何用.NET和C#从Alpha Sender发送短信!如果你遇到任何问题,你可以参考GitHub上本教程的源代码,或者你可以在GitHub资源库上提交一个问题。除了上述示例代码外,该源代码还包含了一个从Alpha发送器发送短信的示例,而没有信息服务。