七陌API对接实战:外呼接口及通话记录推送

通过白码低代码开发平台对接七陌外呼接口,实现选择客户进行外呼,并保存通话记录的功能。

外呼接口实现:

官方接口文档:http://developer.7moor.com/v2docs/dialout/ 

1、对接数据查询

向七陌商务索取到七陌用户中心账号密码,在查询页面查询到三个参数

 let accountId = "T0********";//账户id

    let apiSecret = "495b60****************5f0555af";//账户secret

    let host = "https://openapis.7moor.com";//请求域名

查询页面:http://developer.7moor.com/data-query/ 

2、接口鉴权信息

时间戳

 //时间

    let date = new Date();

    let YY = date.getFullYear();

    let MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);

    let DD = (date.getDate() + 1 <= 10 ? '0' + date.getDate() : date.getDate());

    let hh = (date.getHours() + 1 <= 10 ? '0' + date.getHours() : date.getHours());

    let mm = date.getMinutes() + 1 <= 10 ? '0' + date.getMinutes() : date.getMinutes();

    let ss = date.getSeconds() + 1 <= 10 ? '0' + date.getSeconds() : date.getSeconds();

    let time = YY + MM + DD + hh + mm + ss;

包头验证信息Authorization

  //包头验证信息 Authorization的值为 Base64编码(账户Id +冒号+时间戳) 

    let buffer = $modules.lib.Buffer.from(accountId + ":" + time);

    let authorization = buffer.toString("base64");

请求参数sig

 //sig, 32位大写MD5加密 (帐号Id + 帐号APISecret +时间戳)

    const crypto = $modules.crypto;

    const hash = crypto.createHash('md5');

    let sig = hash.update(accountId + apiSecret + time).digest('hex').toLocaleUpperCase();

3、外呼接口请求地址

  //请求地址

    let url = host + "/v20180426/call/dialout/" + accountId + "?sig=" + sig;

4、请求头部

//请求头部

    let headers = {

        "Content-Type": "application/json;charset=utf-8",

        "Authorization": authorization,

    }

5、请求体

相关参数参考官方文档:http://developer.7moor.com/v2docs/dialout/ 

//请求体

    let data = {

        "FromExten": $input.FromExten,

        "Exten": $input.Exten,

        "ExtenType": typeMap[$input.ExtenType],

        "ActionID": $input.ActionID,

        "DialoutStrVar": $input.DialoutStrVar,

    };

为了方便用户端理解,extenType参数输入增加map

   //ExtenType map

    let typeMap = {

        "手机": "Local",

        "软电话": "sip",

        "IP话机": "gateway",

    }

6、发起外呼请求

//外呼   

 let call = await $modules.curl(url, {

        method: "post",

        dataType: "json",

        headers,

        data,

    });

7、输出请求结果

 //输出

    //$output.sig = sig;

    //$output.authorization = authorization;

    $output.request = data;

    $output.result = call.data;

    $output.success = call.data.Succeed.toString();

    $output.msg = call.data.Message;

坐席接听方式说明:外呼时强制坐席使用该接听方式进行外呼。Local为“手机”,”sip为“软电话”需登录企话宝,gateway为“语音网关”,需注册绑定IP话机。

Sip方式外呼效果:

外呼效果图

通话记录事件推送实现

官方接口文档:对外事件推送 - 容联七陌|开发者中心 

1、设置推送地址

添加一个webhook,设置路径。

路径

将完整路径复制,与用户中心账户名一并发给七陌业务员,让对方配置该路径。

配置路径

2、处理接收的信息

async function hook($req = request, $resp = response, $modules = modules) {

    //返回字符串 200,告知七陌已成功接收

    $resp.body = "200";

    let json = {

        query: $req.query,//接收的数据,get方式

        body: $req.body,//接收的数据,post方式

        timestamp: new Date().toString()

    }

    //保存接收的数据

    $modules.data.saveData("60177fad283f87288d276269", {

        "60177fc32f8b27288c6023dd": JSON.stringify(json)

    })

}

接收到的数据:

接收数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/329662.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】详解编译和链接

1.翻译环境和运行环境 在ANSIC的任何一种实现中&#xff0c;存在两个不同的环境 第1种是翻译环境&#xff0c;在这个环境中源代码被转换为可执行的机器指令第2种是执行环境&#xff0c;它用于实际执行代码 2.翻译环境 翻译环境是怎么将源代码转换为可执行的机器指令的呢&…

openssl3.2 - 官方demo学习 - guide - tls-client-block.c

文章目录 openssl3.2 - 官方demo学习 - guide - tls-client-block.c概述记录问题server和client IP都为localhostserver和client IP都为127.0.0.1想到解决问题的方法1想到解决问题的方法2笔记END openssl3.2 - 官方demo学习 - guide - tls-client-block.c 概述 tls 客户端 官…

厨卫产品画册的制作全攻略

厨卫产品画册的制作是一项复杂而又重要的任务&#xff0c;它不仅关乎产品的展示&#xff0c;更关乎品牌形象的塑造。一个好的厨卫产品画册能够吸引潜在客户的注意力&#xff0c;提升品牌知名度&#xff0c;同时也能为销售团队提供有力的销售工具。 一、明确目标与定位 在制作厨…

记一次手动查杀Linux服务器挖矿木马

目录 前言排查开始系统占用进程排查网络统计 深入排查修复指令篡改隐藏程序查找进程信息查看 后续清理删除相关文件systemd计划任务用户 原因追溯 前言 我实验室的座位隔壁放着一台其他课题组管理的服务器&#xff0c;平时利用率不高。那天我发现服务器的风扇转速拉满持续了至…

test-02-test case generate 测试用例生成 EvoSuite 介绍

拓展阅读 junit5 系列 基于 junit5 实现 junitperf 源码分析 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息) Junit performance rely on junit5 and jdk8.(java 性能测试框架。性能测试。压测。测试报告生成。) 拓展阅读 自动生成测试用例 什么…

企业网络扫描程序中需要的功能

网络扫描程序已成为每个 IT 管理员抵御安全漏洞的第一道防线不可或缺的一部分。使用正确的网络扫描程序工具进行有效的网络侦察和诊断&#xff0c;使管理员能够查明可能升级为安全风险和网络事故的网络问题。典型的网络扫描程序可以与 IP 扫描程序配合使用&#xff0c;按顺序扫…

LangChain 75 打造你自己的OpenAI + LangChain网页应用

LangChain系列文章 LangChain 60 深入理解LangChain 表达式语言23 multiple chains链透传参数 LangChain Expression Language (LCEL)LangChain 61 深入理解LangChain 表达式语言24 multiple chains链透传参数 LangChain Expression Language (LCEL)LangChain 62 深入理解Lang…

zabbix实验

目录 一、zabbix 自动发现与自动注册 1、zabbix 自动发现 ①关闭防火墙和安全机制 ②在服务端和客户端上配置 hosts 解析 ③在 Web 页面配置自动发现 2、zabbix 自动注册 ①环境准备 ②在服务端和客户端上配置 hosts 解析 ③修改 zabbix-agent2 配置文件 ④在 Web 页…

UMind:从功能绑定到自如切换,用AI重塑摄像机价值

随着人工智能技术的迅速发展&#xff0c;AI摄像机的使用越来越广泛。虽然AI赋予了摄像机更加丰富的功能&#xff0c;但是在实际应用中仍然存在诸多不便。 为了解决以上问题&#xff0c;悠络客提出了【软件定义硬件】的创新理念&#xff0c;致力于让摄像头像智能手机那样&#x…

Linux开发工具:yum、vim、gcc/g++、makefile

文章目录 一. Linux软件包管理器-yum使用1. Linux 安装软件的方式2. yum 三板斧yum listyum installyum remove 二. Linux编辑器-vim使用1. vim 的基本概念2. vim 的基本操作3. vim 的命令模式命令集4. vim 底行模式命令集 三. Linux编译器-gcc/g使用1. 快速使用2. 程序翻译过程…

2024中国光伏展

2024年中国光伏展预计将是一个规模庞大的展览&#xff0c;吸引了全球光伏行业的专业人士和企业参与。光伏展将为各个光伏领域的企业提供一个展示最新技术、产品和解决方案的平台。 在2024年的中国光伏展上&#xff0c;参展企业将能够展示他们的光伏组件、太阳能电池板、逆变器、…

盲猜你不懂H5架构和原生架构的区别

盲猜你不懂H5架构和原生架构的区别 前言 1. App 的 3 种开发方式 表面上看&#xff0c;手机 App 都是同样的东西&#xff0c;就是手机上的应用程序&#xff0c;点击图标就能运行&#xff0c;但是它们的底层技术不一样。按照开发技术&#xff0c;App 可以分成三大类。原生应用…

[Android] Android架构体系(1)

文章目录 Android 的框架Dalvik 虚拟机JNI原生二进制可执行文件Android NDK中的binutils Bionic谷歌考虑到的版权问题Bionic与传统的C标准库&#xff08;如glibc&#xff09;的一些不同 参考 Android 的框架 Android 取得成功的关键因素之一就是它丰富的框架集。 没有这些框架…

Github 2024-01-16 Python开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-01-16统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目10HTML项目1 精心策划的Python资源列表 创建周期&#xff1a;3490 天开发语言&#xff1a;Python…

CTF CRYPTO 密码学-1

题目名称&#xff1a;enc 题目描述&#xff1a; 压缩包中含两个文件&#xff1a;一个秘钥d.dec&#xff0c;一个密文flag.enc 解题过程&#xff1a; Step1&#xff1a;这题是一个解密他题目&#xff0c;尝试openssl去ras解密 工具简介 在Kali Linux系统中&#xff0c;openss…

基于Java+SSM养老行动能力评估系统详细设计和实现【附源码】

基于JavaSSM养老行动能力评估系统详细设计和实现【附源码】 &#x1f345; 作者主页 央顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各种定制…

关于git与git-lfs对文件压缩存储方面的研究

先说结论&#xff0c;git使用了Delta增量压缩算法&#xff0c;git-lfs实测没有进行任何压缩&#xff0c;这个结论让我很震惊。 测试过程如下&#xff1a; 测试git仓库自身的压缩 准备一个包含许多杂项文件的文件夹&#xff0c;大概几百M&#xff0c;要保证有一个txt文本文件…

深度好文:MySQL体系结构

MySQL采用的是客户/服务器体系结构&#xff0c;实际是有两个程序&#xff0c;一个是MySQL服务器程序&#xff0c;指的是mysqld程序&#xff0c;运行在存放数据库的机器上&#xff0c;负责在网络上监听并处理来自客户的服务请求&#xff0c;根据这些请求去访问数据库的内容&…

插件和工具汇总

插件和工具汇总 【一】MyBatis Log插件【二】热部署&#xff08;1&#xff09;适用于IntelliJ IDEA 2021.X以上版本&#xff08;2&#xff09;适用于IntelliJ IDEA 2021.X以下版本 【三】一些快捷键 【一】MyBatis Log插件 能够自动拼接参数生成执行的SQL语句&#xff0c;可以…

073:vue+mapbox 加载here地图(影像瓦片图 v3版)

第073个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载here地图的影像瓦片图。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共77行)相关API参考:专栏目标示例效果