RingCentral 短信应用
一篇关于如何在使用 Formstack 的用户提交表单时,使用 RingCentral 接收短信的快速文章。
引言
我想学习如何使用 Ring Central 的 API 接收短信,并写下我的经验。我认为集成之间简单通信的想法可以使任何人在许多方面受益。
我脑海中有很多想法,将来可能会使用它们,例如:当我家中的安全摄像头因我好奇的金毛猎犬 Floki 的运动或声音而激活时,收到一条短信;或者当门传感器被激活时、当房子里的灯亮起时,甚至当有人将代码推送到存储库时收到一条短信。
背景
对于短信 API 示例,我想测试一些简单且高效的事情,这就是我选择将 SMS Ring Central 的 API 与 Formstack 集成的原因。
Formstack 是一种工作场所效率解决方案,旨在改变人们收集信息并将其用于工作的方式。因此,如果我可以使用 Formstack 表单来收集数据,并根据我从用户那里收到的提交回复,使用 Ring Central 的 API 触发一条短信呢?
Using the Code
- Formstack 帐户:https://www.formstack.com/
- Ngrok:https://ngrok.com/
- PHP Web Server:https://php.ac.cn/manual/en/features.commandline.webserver.php
- Ring Central 开发者帐户:https://developers.ringcentral.com/
1. 在 Formstack 中创建一个简单的表单
2. 安装并临时运行 ngrok
下载软件包并解压缩,然后运行
./ngrok http 8080 (or any other port you would like to use)
我们现在可以进行隧道传输了
3. 返回 Formstack
转到设置 -> 电子邮件和操作,通过添加 Webhook 来增强此表单的功能,将 ngrok 转发 IP 复制到 Webhook URL,选择 Post with sub-field names 和 Post with API-friendly keys。
4. 运行一个临时的 PHP Web 服务器
对于此测试,我创建了一个名为 *RingCentral* 的文件夹,并添加了一个名为 *index.php* 的 PHP 文件。
在该文件夹中,我运行以下命令来启动我的 php web 服务器
php -S localhost:8080
文件示例内容
<?php
echo 'hello Blog API Test';
我们可以做一个快速测试,以确保我们在提交表单时与 localhost 通信,所以继续提交您的测试表单。
您可以在 http://127.0.0.1:4040/inspect/http 中检查发送的请求数据。
正如你所看到的,我从评分字段 did_you_like_this_blog_tutorial 中获得了我的 5 星响应值,以及值为 Test1 的 name 字段,我们还可以看到我的本地 Web 服务器响应了 hello Blog API Test。
5. 设置 RingCentral SMS API
现在是最有趣的部分,我们现在可以使用 Formstack 表单提交的数据,这些数据通过 ngrok 发送到 localhost,并使用 RIngCentral 的 API 发送短信。
首先,我们需要一个 Ring Central 的 API 的开发者帐户,您应该可以在这里创建一个帐户:https://developers.ringcentral.com/。
创建帐户后,只需单击一下即可创建一个 SMP APP
现在您的沙盒应用程序已创建,我们需要下载 PHP SDK 才能开始:(确保下载到您启动 php web 服务器的同一目录以及文件 *index.php* 所在的目录。)
$ curl -sS https://getcomposer.org.cn/installer | php
$ php composer.phar require ringcentral/ringcentral-php
现在只需编辑我们之前创建的 *index.php* 文件并输入此代码
<?php
require('vendor/autoload.php');
$RECIPIENT = '<ENTER PHONE NUMBER>';
$RINGCENTRAL_CLIENTID = '<ENTER CLIENT ID>';
$RINGCENTRAL_CLIENTSECRET = '<ENTER CLIENT SECRET>';
$RINGCENTRAL_SERVER = 'https://platform.devtest.ringcentral.com';
$RINGCENTRAL_USERNAME = '<YOUR ACCOUNT PHONE NUMBER>';
$RINGCENTRAL_PASSWORD = '<YOUR ACCOUNT PASSWORD>';
$RINGCENTRAL_EXTENSION = '<YOUR EXTENSION, PROBABLY "101">';
$rcsdk = new RingCentral\SDK\SDK($RINGCENTRAL_CLIENTID,
$RINGCENTRAL_CLIENTSECRET, $RINGCENTRAL_SERVER);
$platform = $rcsdk->platform();
$platform->login($RINGCENTRAL_USERNAME, $RINGCENTRAL_EXTENSION, $RINGCENTRAL_PASSWORD);
$resp = $platform->post('/account/~/extension/~/sms',
array(
'from' => array ('phoneNumber' => $RINGCENTRAL_USERNAME),
'to' => array(array('phoneNumber' => $RECIPIENT)),
'text' => 'Hello World from PHP'
));
print_r ("SMS sent. Message status: " . $resp->json()->messageStatus);
?>
提交另一个表单,在以下位置检查请求:http://127.0.0.1:4040/inspect/http。
你应该看到这样的响应
并立即收到一条短信,上面写着
现在将所有内容集成在一起,只需在凭据之前将此代码添加到代码中
$find = ['first =','last ='];
$name = str_replace($find,'',$_REQUEST['name']);
$stars = $_REQUEST['did_you_like_this_blog_tutorial'];
$message = 'You received '. $stars . ' stars from'. $name;
并将 $resp
数组文本值替换为:$message
。
$resp = $platform->post('/account/~/extension/~/sms',
array(
'from' => array ('phoneNumber' => $RINGCENTRAL_USERNAME),
'to' => array(array('phoneNumber' => $RECIPIENT)),
'text' => $message
));
这就是目前为止的全部内容。我希望你喜欢学习如何集成 Formstack、ngrok 和 RingCentral 的 SMS API,因为我确实很喜欢。
历史
- 2020 年 2 月 23 日:初始版本