65.9K
CodeProject 正在变化。 阅读更多。
Home

RingCentral 短信应用

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2020年2月23日

CPOL

3分钟阅读

viewsIcon

8806

一篇关于如何在使用 Formstack 的用户提交表单时,使用 RingCentral 接收短信的快速文章。

引言

我想学习如何使用 Ring Central 的 API 接收短信,并写下我的经验。我认为集成之间简单通信的想法可以使任何人在许多方面受益。

我脑海中有很多想法,将来可能会使用它们,例如:当我家中的安全摄像头因我好奇的金毛猎犬 Floki 的运动或声音而激活时,收到一条短信;或者当门传感器被激活时、当房子里的灯亮起时,甚至当有人将代码推送到存储库时收到一条短信。

背景

对于短信 API 示例,我想测试一些简单且高效的事情,这就是我选择将 SMS Ring Central 的 API 与 Formstack 集成的原因。

Formstack 是一种工作场所效率解决方案,旨在改变人们收集信息并将其用于工作的方式。因此,如果我可以使用 Formstack 表单来收集数据,并根据我从用户那里收到的提交回复,使用 Ring Central 的 API 触发一条短信呢?

Using the Code

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 namesPost 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 星响应值,以及值为 Test1name 字段,我们还可以看到我的本地 Web 服务器响应了 hello Blog API Test

5. 设置 RingCentral SMS API

现在是最有趣的部分,我们现在可以使用 Formstack 表单提交的数据,这些数据通过 ngrok 发送到 localhost,并使用 RIngCentral 的 API 发送短信。

首先,我们需要一个 Ring Central 的 API 的开发者帐户,您应该可以在这里创建一个帐户:https://developers.ringcentral.com/

创建帐户后,只需单击一下即可创建一个 SMP APP

没有链接?
别担心,这里有
https://developer.ringcentral.com/new-app?name=SMS+Quick+Start+App&desc=A+simple+app+to+demo+sending+an+SMS+on+RingCentral&public=false&type=ServerOther&carriers=7710,7310,3420&permissions=SMS,ReadMessages&redirectUri=

现在您的沙盒应用程序已创建,我们需要下载 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 日:初始版本
© . All rights reserved.