在探索如何通过集成实现通信的简单想法时,意识到这可以为任何人带来无数的好处。脑海中涌现出许多想法,并且可能会在未来使用它们,例如:当好奇的金毛寻回犬Floki触发家中的安全摄像头时,或者门传感器被激活,或者家中的灯亮起时,甚至在有人推送代码到仓库时,收到一条短信。
对于短信API示例,希望能够测试一些简单且非常有生产力的东西,这就是为什么选择将RingCentral的API与Formstack集成的原因。Formstack是一个提高工作效率的解决方案,旨在改变人们收集信息并将其投入工作的方式,那么如果可以使用Formstack表单来收集数据,并且根据从用户那里得到的提交响应,可以使用RingCentral的API触发一条短信呢?
Formstack账户:
Ngrok:
PHP Web服务器:
RingCentral开发者账户:
2. 临时安装并运行Ngrok
下载软件包并解压,然后运行:
./ngrok http 8080
(或者想使用的任何其他端口)
现在准备好进行隧道传输了:
转到
设置 -> 电子邮件和操作
让通过添加一个Webhook来增强这个表单,复制ngrok转发的IP到Webhook URL,选择“使用子字段名称发布”和“使用API友好的键发布”。
对于这个测试,创建了一个名为RingCentral的文件夹,并添加了一个名为index.php的PHP文件。
在该文件夹内,运行了以下命令来启动PHP Web服务器:
php -S localhost:8080
文件的示例内容:
<?php
echo 'hello Blog API Test';
?>
可以快速测试,以确保在提交表单时与本地主机通信,所以请提交测试表单。
可以在http://127.0.0.1:4040/inspect/http检查发送的请求数据。
如所见,从Rating字段did_you_like_this_blog_tutorial得到了5星响应值,以及带有值Test1的name字段,还可以看到本地Web服务器响应了hello Blog API Test。
现在到了最有趣的部分,现在可以使用Formstack表单提交的数据,该数据通过ngrok发送到本地主机,并使用RingCentral的API发送短信。
首先,需要一个RingCentral API的开发者账户,应该可以在这里创建一个账户:
一旦创建了账户,只需一键创建一个SMP APP:
没有链接?别担心,这里有:
现在沙箱应用程序已经创建,需要下载PHP SDK来开始:
(确保下载到启动PHP Web服务器的同一目录,并且index.php文件位于该目录内。)
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar require ringcentral/ringcentral-php
现在只需编辑之前创建的index.php文件,并输入此代码:
<?php
require(
'vendor/autoload.php'
);
$RECIPIENT =
'';
$RINGCENTRAL_CLIENTID =
'';
$RINGCENTRAL_CLIENTSECRET =
'';
$RINGCENTRAL_SERVER =
'https://platform.devtest.ringcentral.com';
$RINGCENTRAL_USERNAME =
'';
$RINGCENTRAL_PASSWORD =
'';
$RINGCENTRAL_EXTENSION =
'';
$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数组的text值替换为:
$message
$resp = $platform->post(
'/account/~/extension/~/sms',
array(
'from' => array (
'phoneNumber' => $RINGCENTRAL_USERNAME),
'to' => array(array(
'phoneNumber' => $RECIPIENT)),
'text' =>
$message
));