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

2024-01-17 09:20

本文主要是介绍七陌API对接实战:外呼接口及通话记录推送,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

外呼接口实现:

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

1、对接数据查询

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

 let accountId = "T0********";//账户idlet apiSecret = "495b60****************5f0555af";//账户secretlet 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 maplet 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)

    })

}

接收到的数据:

接收数据

这篇关于七陌API对接实战:外呼接口及通话记录推送的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/615559

相关文章

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

MySQL中C接口的实现

《MySQL中C接口的实现》本节内容介绍使用C/C++访问数据库,包括对数据库的增删查改操作,主要是学习一些接口的调用,具有一定的参考价值,感兴趣的可以了解一下... 目录准备mysql库使用mysql库编译文件官方API文档对象的创建和关闭链接数据库下达sql指令select语句前言:本节内容介绍使用C/

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

Oracle Scheduler任务故障诊断方法实战指南

《OracleScheduler任务故障诊断方法实战指南》Oracle数据库作为企业级应用中最常用的关系型数据库管理系统之一,偶尔会遇到各种故障和问题,:本文主要介绍OracleSchedul... 目录前言一、故障场景:当定时任务突然“消失”二、基础环境诊断:搭建“全局视角”1. 数据库实例与PDB状态2

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必

使用Go调用第三方API的方法详解

《使用Go调用第三方API的方法详解》在现代应用开发中,调用第三方API是非常常见的场景,比如获取天气预报、翻译文本、发送短信等,Go作为一门高效并发的编程语言,拥有强大的标准库和丰富的第三方库,可以... 目录引言一、准备工作二、案例1:调用天气查询 API1. 注册并获取 API Key2. 代码实现3

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结