Java发送SMS:API库(Twilio, Nexmo)使用概述与示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Java发送SMS:如何使用API库进行消息群发



发送SMS消息是现代Web应用程序、身份验证系统(2FA)、通知和营销推广中一项备受青睐的功能。在Java中,这需要使用与云API提供商交互的专业库。本文将介绍两个最流行的库:Twilio 和 Vonage(原Nexmo)。您将学习如何连接它们、发送第一条SMS以及处理可能出现的错误。



1. 为什么需要专门的SMS库?

直接通过HTTP请求处理SMS虽然可行,但并不方便。库提供了以下功能:

  • 现成的类,用于创建和发送消息。
  • 错误管理,以及在网络故障时的重试机制。
  • 安全处理API密钥和令牌。
  • 支持额外功能(投递状态、接收传入SMS)。


2. 用于Java的Twilio库

Twilio是市场领导者之一。其Java SDK(软件开发工具包)易于学习,并拥有出色的文档。



2.1 连接依赖项(Maven)

在 pom.xml 中添加以下代码块:

<dependency>    <groupId>com.twilio.sdk</groupId>    <artifactId>twilio</artifactId>    <version>9.14.1</version> <!-- 请检查最新版本 --></dependency>


2.2 通过Twilio发送SMS

发送消息的代码示例。请确保您拥有来自Twilio控制台的 Account SID 和 Auth Token,以及一个已购买的电话号码。

import com.twilio.Twilio;import com.twilio.rest.api.v2010.account.Message;import com.twilio.type.PhoneNumber;

public class SmsSender { // 设置您的凭据 public static final String ACCOUNT_SID = "您的_ACCOUNT_SID"; public static final String AUTH_TOKEN = "您的_AUTH_TOKEN";

public static void main(String[] args) { Twilio.init(ACCOUNT_SID, AUTH_TOKEN);

Message message = Message.creator( new PhoneNumber("+71234567890"), // 接收方号码 new PhoneNumber("+19876543210"), // 您的Twilio号码 "来自Java和Twilio的问候!" ).create();

System.out.println("SMS已发送。SID: " + message.getSid()); }}

重要提示: 电话号码必须采用国际格式(以+开头)。



3. 用于Java的Vonage(Nexmo)库

Vonage SMS API是另一个流行的选择。其库名为 nexmo-java 或 vonage-java-sdk。



3.1 连接依赖项(Gradle)

implementation 'com.vonage:client:7.3.0'

对于Maven:

<dependency>    <groupId>com.vonage</groupId>    <artifactId>client</artifactId>    <version>7.3.0</version></dependency>


3.2 通过Vonage发送SMS

import com.vonage.client.VonageClient;import com.vonage.client.sms.MessageStatus;import com.vonage.client.sms.SmsSubmissionResponse;import com.vonage.client.sms.messages.TextMessage;

public class VonageSms { public static void main(String[] args) { VonageClient client = VonageClient.builder() .apiKey("您的_API_KEY") .apiSecret("您的_API_SECRET") .build();

TextMessage message = new TextMessage( "VonageAPI", // 发送方(最多11个字符) "+71234567890", // 接收方 "来自Java和Vonage的测试消息!" );

SmsSubmissionResponse response = clien

推荐