php - 如何使用 PHP-SDK v2 API 转移呼叫
问题描述
我一直在通过电子邮件与 CallFire 开发人员进行沟通,非常感谢您的帮助。我对生成的 PHP-SDK v2 examples.php 中的示例中的发送调用方法有疑问只是为了澄清我正在尝试完成,从一个网站我需要调用一个用户,播放一条消息,然后转移到我将提供另一个号码。
在搜索 API 文档后,每个 SDK 都会出现 16 到 18 次单词 transfer,但其中大部分是隐藏的,或者与 Lease Configuration 有关。我发现的另一个示例包含在 XML 传输指南中:https ://answers.callfire.com/hc/en-us/articles/200769678-Transfer 。我知道我可以在 PHP API 中完成这一切,但我需要一些指导。
在 PHP 示例中,liveMessageSoundid 在其 json 字段中有 3 个参数,整数用于 CallFire Web 后端,但带有 machineMessage 值会打开一罐蠕虫跟踪,然后 machineMessageSoundId 引用 transferMessage。我需要转接电话,但 transferNumber 的值是字符串/语音/字符串。这些字符串之一必须是电话号码,但 SendCall 方法示例从未明确显示转接呼叫命令,对吗?
这是我正在构建要传输到 CallFire 的 json 的示例。
$request->getOperationConfig()->setBodyParameter("[phoneNumber" : "string",fromNumber" : "string",
"contactId" : integer,attributes" : [ "string" ],
"dialplanXml" : "string",liveMessage" : "string",
"liveMessageSoundId" : integer,machineMessage" : "string",
"machineMessageSoundId" : integer,transferMessage" : "string",
"transferMessageSoundId" : integer,transferDigit" : "string",
"transferNumber" : "string",voice" : "string"
}
]");
这是我到目前为止所拥有的:
<?php
//These will be loaded from our site.
$number = "";
$name = "";
$rep_name = "";
$rep_number = "";
$live_message = "Hello," +$name+ " , Thank you for contacing Texas Home School Coalition, please stand by for a moment while we connect you to your representative. Please have your statement ready regarding this important issue, we also left you a guide to read from on the action page you contacted us from":
$machine_message = "Hello, "+ $name +" , We received a request to give you a call from Texas Home School Coalition regarding an important issue for home schoolers and parents but we need you on the line in order to help you reach your representative.";
public static function main() {
$client = \CallFire\Api\DocumentedClient::createClient("9dccec3d4ebb", "$PASSWORD");
$request = $client->sendCalls();
$request->getOperationConfig()->setHeaderParameters(array("Content-Type" => "application/json"));
$body = '[
{
"defaultVoice" => "MALE1"
"phoneNumber": "test_number",
"fromNumber": "8067444441",
"liveMessage": $live_message,
"machineMessage": $machine_message,
"transferMessage": $transfer_message,
"transferNumber": $rep_number;
}
]';
$request->getOperationConfig()->setBodyParameter($body);
$result = $client->request($request);
$json = json_decode($result->getBody());
}
?>
解决方案
正如我在电子邮件中提到的 - 你的代码是正确的,你只需要再添加一个参数 transferDigit 来告诉系统何时执行传输。
这些都是可用的参数:
$request->getOperationConfig()->setBodyParameter("[
{
"phoneNumber" : "string",
"contactId" : integer,
"attributes" : [ "string" ],
"dialplanXml" : "string",
"liveMessage" : "string",
"liveMessageSoundId" : integer,
"machineMessage" : "string",
"machineMessageSoundId" : integer,
"transferMessage" : "string",
"transferMessageSoundId" : integer,
"transferDigit" : "string",
"transferNumber" : "string",
"voice" : "string"
}
所以你的身体必须是这样的:
{
"defaultVoice" => "MALE1"
"phoneNumber": "test_number",
"fromNumber": "8067444441",
"liveMessage": $live_message,
"machineMessage": $machine_message,
"transferMessage": $transfer_message,
"transferNumber": $rep_number,
"transferDigit" : "1 or 2 ....";
}
还请重新生成代码示例,我不知道您在哪里找到示例,例如:“liveMessageSoundId”:integer,machineMessage”。请查看正确的
推荐阅读
- sql - 在另一列中选择具有相同 id 但相同值的行
- coq - 用 list_beq 证明列表的相等性
- magento2 - Magento 2 自定义控制台命令创建具有角色的管理员用户,Laminas 服务定位器问题
- database - 为什么 laradock 为不同的项目使用一个数据库?
- node.js - 错误 [ERR_HTTP_HEADERS_SENT]:发送到客户端后无法设置标头 | NodeJS ExpressJS MySQL
- ruby-on-rails - 如何在 Rails 中加密 csv/xlsx 文件
- python - AES 128 如何在 python 中使用部分密钥进行暴力破解
- php - FFMpeg 将音频文件连接在一起,最后一个文件作为背景
- html - CSS:在英雄图像上方制作浮动导航栏的最佳方法?
- vaadin - Vaadin 8网格行高不会自动调整