在 PHP 中可以做很多事情,包括创建网站、建立命令行工具、生成图像、加密和解密数据、以及搜刮网站。
但是你知道吗,PHP也能打电话?好吧,不是它自己不能,但在Twilio可编程语音的帮助下,它可以!在本教程中,你将了解到如何使用PHP。在本教程中,你将学习如何使用。
设置你的环境
你需要做的第一件事是创建一个项目目录,并换到其中。要做到这一点,运行以下命令:
mkdir twilio-voice-call
cd twilio-voice-call
接下来,创建一个名为*.env*的新文件来存储应用程序需要的环境变量。然后,在这个新文件中粘贴以下代码:
RECIPIENT_PHONE_NUMBER="<RECIPIENT_PHONE_NUMBER>"
TWILIO_ACCOUNT_SID=<TWILIO_ACCOUNT_SID>
TWILIO_AUTH_TOKEN=<TWILIO_AUTH_TOKEN>
TWILIO_PHONE_NUMBER="<TWILIO_PHONE_NUMBER>"
TWIML_BIN_URL="<TWIML_BIN_URL>"
安装所需的依赖项
接下来,你需要安装代码所需的依赖项,只有两个:
| Twilio PHP助手库 | 简化了在PHP中与Twilio的所有API的交互。 |
|---|---|
| PHP Dotenv | 让PHP的`$_ENV`和`$_SERVER`超级全局变量可以使用`.env`中定义的环境变量。 |
要安装它们,请运行下面的命令:
composer require twilio/sdk vlucas/phpdotenv
设置你的Twilio凭证
你需要做的下一件事是检索你的Twilio Auth Token、账户SID和电话号码。要做到这一点,请登录Twilio控制台,从"账户信息 "面板上复制详细信息,并将它们分别粘贴到.env中的<TWILIO_ACCOUNT_SID>,<TWILIO_AUTH_TOKEN>, 和<TWILIO_PHONE_NUMBER> 的位置:

创建一个TwiML Bin
现在,你需要创建电话呼叫指令。这些必须是TwiML格式,并通过一个可公开访问的URL提供。
如果你不熟悉它,TwiML(Twilio 标记 语言)是XML的一个子集,它告诉Twilio要做什么,比如当你拨打或接收电话或短信时:

你不需要自己托管该文件,因为你可以在TwiML Bin中免费托管它。要做到这一点,请导航到Twilio控制台的 TwiMLBin部分,点击**"创建新的TwiML Bin":

然后,在**"友好名称 "**字段中,添加一个人性化的名称,如php-voice-call ,在TwiML字段中添加下面的TwiML。
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say>Ahoy, friend!</Say>
</Response>
你使用的TwiML指令告诉Twilio在呼叫被接听时说"Ahoy, friend"。
完成这些后,点击**"创建"**。创建好TwiML Bin后,复制URL并将其粘贴到*.env*中,代替<TWIML_BIN_URL> :

在PHP中拨打电话
现在,是时候写代码来拨打电话了。要做到这一点,创建一个名为voice-call.php的新的PHP文件,并在新文件中粘贴以下代码:
<?php
declare(strict_types=1);
require_once './vendor/autoload.php';
use Twilio\Rest\Client;
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
$twilio = new Client(
$_ENV['TWILIO_ACCOUNT_SID'],
$_ENV['TWILIO_AUTH_TOKEN']
);
$call = $twilio->calls
->create(
$_ENV['RECIPIENT_PHONE_NUMBER'],
$_ENV['TWILIO_PHONE_NUMBER'],
[ 'url' => $_ENV['TWIML_BIN_URL']]
);
print($call->sid);
该代码首先导入所有需要的库,然后使用PHP Dotenv将*.env*中定义的变量加载到PHP的$_ENV 和$_SERVER 超级全局变量中。
之后,它初始化了一个新的TwilioClient 对象,它提供了与Twilio的REST API交互的功能。然后,通过$twilio->calls->create() ,它向Programmable Voice API发出请求,以拨打电话,并向请求传递:
- 收件人的电话号码。
- 要拨打的Twilio电话号码。
- 可公开访问的带有TwiML呼叫指令的URL。
假设呼叫成功,呼叫的SID将被打印到终端,电话将被打通。
测试代码
现在,是时候测试该代码了。要做到这一点,运行下面的命令:
php voice-call.php
在几秒钟内,你的手机应该收到一个电话,并听到**"Ahoy,朋友"**。
这就是使用PHP和Twilio可编程语音打电话的方法
在PHP Twilio Programmable Voice中拨打电话的要领并不多。公平地说,由于TwiML的惊人力量,你可以利用更多的功能,但这是你需要开始的全部。