Twilio — это стороннее приложение, используемое для отправки SMS и голосовых вызовов из нашего приложения. Это позволяет нам отправлять SMS и делать голосовые звонки программно.
В этой главе вы узнаете, как реализовать отправку SMS-сообщений и выполнение голосовых вызовов с помощью Spring Boot с Twilio.
Примечание. Мы использовали учетную запись Trail в Twilio для отправки SMS и голосовых вызовов. Вы можете узнать больше о Twilio на www.twilio.com .
Во-первых, нам нужно добавить зависимость Twilio в наш файл конфигурации сборки.
Пользователи Maven могут добавить следующую зависимость в файл pom.xml.
<dependency> <groupId>com.twilio.sdk</groupId> <artifactId>twilio</artifactId> <version>7.16.1</version> </dependency>
Пользователи Gradle могут добавить следующую зависимость в файл build.gradle.
compile group: "com.twilio.sdk", name:"twilio", version: "7.16.1"
Теперь, инициализируйте учетную запись Twilio с ACCOUNT_SID и AUTH_ID в статическом блоке, как показано —
static { Twilio.init(ACCOUNT_SID, AUTH_ID); }
Отправка смс
Чтобы отправить SMS, нам нужно предоставить метод from-number и to-number методу Message.create (). Содержимое тела сообщения также необходимо предоставить для метода Message.creator (), как показано ниже:
Message.creator(new PhoneNumber("to-number"), new PhoneNumber("from-number"), "Message from Spring Boot Application").create();
Основной файл класса приложения Spring Boot выглядит ниже.
package com.tutorialspoint.smsdemo; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import com.twilio.Twilio; import com.twilio.rest.api.v2010.account.Message; import com.twilio.type.PhoneNumber; @SpringBootApplication public class SmsdemoApplication implements ApplicationRunner { private final static String ACCOUNT_SID = "<your-account-sid>"; private final static String AUTH_ID = "<your-auth-id>"; static { Twilio.init(ACCOUNT_SID, AUTH_ID); } public static void main(String[] args) { SpringApplication.run(SmsdemoApplication.class, args); } @Override public void run(ApplicationArguments arg0) throws Exception { Message.creator(new PhoneNumber("to-number"), new PhoneNumber("from-number"), "Message from Spring Boot Application").create(); } }
Полный код для создания файла конфигурации приведен ниже —
Maven — pom.xml
<?xml version = "1.0" encoding = "UTF-8"?> <project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.tutorialspoint</groupId> <artifactId>smsdemo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>smsdemo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.twilio.sdk</groupId> <artifactId>twilio</artifactId> <version>7.16.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
Gradle — build.gradle
buildscript { ext { springBootVersion = '1.5.9.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' group = 'com.tutorialspoint' version = '0.0.1-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { compile('org.springframework.boot:spring-boot-starter') testCompile('org.springframework.boot:spring-boot-starter-test') compile group: "com.twilio.sdk", name:"twilio", version: "7.11.+" }
Вы можете создать исполняемый файл JAR и запустить приложение весенней загрузки, используя следующие команды Maven или Gradle:
Для Maven используйте команду как показано —
mvn clean install
После «BUILD SUCCESS» вы можете найти файл JAR в целевом каталоге.
Для Gradle используйте команду как показано на рисунке —
gradle clean build
После «BUILD SUCCESSFUL» вы можете найти файл JAR в каталоге build / libs.
Запустите файл JAR с помощью команды, приведенной ниже —
java –jar <JARFILE>
Теперь вы получите SMS на свой «номер».
Сообщение получено на «to-number».
Sent from your Twilio trail account - Message from Spring Boot Application
Примечание. В этом примере мы использовали учетную запись Trail. Итак, вы должны проверить номера перед отправкой SMS.
Голосовые звонки
Чтобы делать голосовые вызовы с помощью Twilio, нам нужно вызвать метод Call.creator (). Для этого метода нам нужно предоставить номер, от номера и голосовую заметку, как показано здесь.
Call.creator(new PhoneNumber("<to-number>"), new PhoneNumber("<from-number>"), new URI("http://demo.twilio.com/docs/voice.xml")).create();
Код основного файла класса приложения Spring Boot приведен ниже.
package com.tutorialspoint.smsdemo; import java.net.URI; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import com.twilio.Twilio; import com.twilio.rest.api.v2010.account.Call; import com.twilio.type.PhoneNumber; @SpringBootApplication public class SmsdemoApplication implements ApplicationRunner { private final static String ACCOUNT_SID = "<ACCOUNT-SID>"; private final static String AUTH_ID = "AUTH-ID"; static { Twilio.init(ACCOUNT_SID, AUTH_ID); } public static void main(String[] args) { SpringApplication.run(SmsdemoApplication.class, args); } @Override public void run(ApplicationArguments arg0) throws Exception { Call.creator(new PhoneNumber("<to-number>"), new PhoneNumber("<from-number>"), new URI("http://demo.twilio.com/docs/voice.xml")).create(); } }
Код для полного файла конфигурации сборки приведен ниже —
Maven — pom.xml
<?xml version = "1.0" encoding = "UTF-8"?> <project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.tutorialspoint</groupId> <artifactId>smsdemo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>smsdemo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.twilio.sdk</groupId> <artifactId>twilio</artifactId> <version>7.16.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
Gradle — build.gradle
buildscript { ext { springBootVersion = '1.5.9.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' group = 'com.tutorialspoint' version = '0.0.1-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { compile('org.springframework.boot:spring-boot-starter') testCompile('org.springframework.boot:spring-boot-starter-test') compile group: "com.twilio.sdk", name:"twilio", version: "7.11.+" }
Вы можете создать исполняемый файл JAR и запустить приложение Spring Boot, используя следующие команды Maven или Gradle.
Для Maven используйте команду как показано —
mvn clean install
После «BUILD SUCCESS» вы можете найти файл JAR в целевом каталоге.
Для Gradle используйте команду как показано на рисунке —
gradle clean build
После «BUILD SUCCESSFUL» вы можете найти файл JAR в каталоге build / libs.
Теперь запустите файл JAR, используя приведенную здесь команду —
java –jar <JARFILE>
Теперь вы получите звонок на свой «номер» от Twilio.
Нажмите любую клавишу после посещения вызова, и вы услышите голосовую заметку с https://demo.twilio.com/docs/voice.xml.
Примечание. В этом примере мы использовали учетную запись Trail. Таким образом, вы должны проверить номера, прежде чем совершать звонки.