使用PHP和Twilio的可编程语音进行电话通话

387 阅读3分钟

在 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> 的位置:

Retrieve you account SID, auth token, and twilio phone number in the Twilio Console

创建一个TwiML Bin

现在,你需要创建电话呼叫指令。这些必须是TwiML格式,并通过一个可公开访问的URL提供。

如果你不熟悉它,TwiML(Twilio 标记 语言)是XML的一个子集,它告诉Twilio要做什么,比如当你拨打或接收电话或短信时:

Step one of creating a TwiML Bin

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

Enter a friendly name and TwiML instructions for your new 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>

Retrieve the TwiML Bin"s 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发出请求,以拨打电话,并向请求传递:

  1. 收件人的电话号码。
  2. 要拨打的Twilio电话号码。
  3. 可公开访问的带有TwiML呼叫指令的URL。

假设呼叫成功,呼叫的SID将被打印到终端,电话将被打通。

测试代码

现在,是时候测试该代码了。要做到这一点,运行下面的命令:

php voice-call.php

在几秒钟内,你的手机应该收到一个电话,并听到**"Ahoy,朋友"**。

这就是使用PHP和Twilio可编程语音打电话的方法

在PHP Twilio Programmable Voice中拨打电话的要领并不多。公平地说,由于TwiML的惊人力量,你可以利用更多的功能,但这是你需要开始的全部。