要在 Spring Boot 应用程序中使用 Twilio 实现电话外呼服务,你需要完成以下几个步骤:
设置 Twilio 账号:注册 Twilio 账号并获取 Account SID 和 Auth Token。购买一个 Twilio 电话号码。添加 Twilio 依赖:在你的 Spring Boot 项目的 pom.xml 文件中添加 Twilio 依赖。 com.twilio.sdk twilio 8.27.0 配置 Twilio:
在 application.properties 或 application.yml 中添加 Twilio 配置。twilio.account.sid=your_account_sid twilio.auth.token=your_auth_token twilio.phone.number=your_twilio_phone_number创建一个服务类来处理电话外呼:
import com.twilio.Twilio; import com.twilio.rest.api.v2010.account.Call; import com.twilio.type.PhoneNumber; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @Service public TwilioService { @Value("${twilio.account.sid}") private String accountSid; @Value("${twilio.auth.token}") private String authToken; @Value("${twilio.phone.number}") private String fromPhoneNumber; public TwilioService() { Twilio.init(accountSid, authToken); } public void makeCall(String toPhoneNumber, String twimlUrl) { Call call = Call.creator( new PhoneNumber(toPhoneNumber), // 目标电话号码 new PhoneNumber(fromPhoneNumber), // Twilio 电话号码 new com.twilio.type.Twiml(twimlUrl) // TwiML URL ).create(); System.out.println(call.getSid()); } }创建一个控制器来触发电话外呼:
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api/twilio") public TwilioController { @Autowired private TwilioService twilioService; @PostMapping("/make-call") public String makeCall(@RequestParam String toPhoneNumber, @RequestParam String twimlUrl) { twilioService.makeCall(toPhoneNumber, twimlUrl); return "Call initiated"; } }设置 TwiML:
你可以使用 Twilio 提供的 TwiML Bin 服务,或者你自己搭建一个服务器来返回 TwiML。示例 TwiML(放在一个公开访问的 URL 上,比如你的网站的一个端点): Hello, this is a call from Twilio! Goodbye! 或者使用 Twilio 的 TwiML Bin,创建一个 Bin 并使用它的 URL。
运行你的 Spring Boot 应用:
启动应用,然后你可以通过访问 POST /api/twilio/make-call 端点来触发电话外呼。
示例请求:
curl -X POST "http://localhost:8080/api/twilio/make-call?toPhoneNumber=+1234567890&twimlUrl=http://your-twiml-url.com"