设置 Twilio 账号:注册 Twilio 账号并获取 Account SID 和 Auth Token。购买一个 Twilio 电话号码。添加 Twilio 依赖:在你的 Spring Boot 项目的 pom.xml 文件中添加 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 class 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 class 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 上,比如你的网站的一个端点):
运行你的 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"