1.0.1221 • Published 1 year ago
tccc-agent-call-wx v1.0.1221
腾讯云呼叫中心外呼小程序 SDK
本文主要介绍如何快速地将腾讯云呼叫中心 TCCC CALL SDK(小程序) 集成到您的项目中,只要按照如下步骤进行配置,就可以完成 SDK 的集成工作。可在自有小程序中实现呼叫通话功能。
环境要求
- 请使用企业小程序账号申请相关权限进行开发,因为小程序测试号不具备
<live-pusher>
和<live-player>
的使用权限。 - 需要在真机上进行运行体验,因为微信开发者工具不支持原生组件
<live-pusher>
和<live-player>
。 - 请使用原生小程序开发环境,不支持 uniapp 等开发框架。
- 微信 App iOS 最低版本要求:7.0.9
- 微信 App Android 最低版本要求:7.0.8
- 小程序基础库最低版本要求:2.10.0
前提条件
- 已完成注册微信小程序账号
- 已完成安装微信开发者工具
- 已完成安装Nodejs
确保小程序符合微信要求,并开通音视频权限。
- 仅支持企业类小程序
- 仅支持指定类目的小程序,具体见微信小程序 live-push 文档
- 在微信公众平台>开发>开发管理>接口设置 中开启实时播放音视频流、实时录制音视频流 两个权限。
配置服务器域名
- 登录微信公众平台
- 选择开发>开发管理>开发设置>服务器域名,根据下表配置
引入 SDK
- 使用 npm 下载
npm install tccc-agent-call-wx
!
- 安装完之后,需要在微信开发者工具中对 npm 进行构建:工具 - 构建 npm。
- 导入 TCCC CALL SDK 组件
{
"usingComponents": {
"tccc-agent-call-wx": "tccc-agent-call-wx"
}
}
- 在wxml中使用TCCC CALL SDK 组件
<tccc-agent-call-wx id="sdk" bind:accepted="onAccepted" bind:progress="onProgress" bind:ended="onEnded"/>
API 概览
登录相关 API
呼叫通话相关
音频相关接口
事件回调
API 参数 & 示例
登录状态相关
login - 参数详情
登录&退出示例
try {
// 登录
await this.selectComponent('#sdk').login({
sdkAppId: Test_SdkAppId,
userId: Test_SeatUserId,
token: token,
});
// 登录成功
} catch (error:any) {
// 登录失败
}
// 退出登录
await this.selectComponent('#sdk').logout();
// 判断是否已登录,true表示已登录,false表示未登录
const isOk = await this.selectComponent('#sdk').isLogin();
呼叫通话相关
call - 参数详情
发起外呼&结束通话示例
try {
// 发起呼叫
await this.selectComponent('#sdk').call({
calleePhone: this.data.calleePhone,
});
// 外呼成功
} catch (error:any) {
// 外呼失败
}
// 发送分机号
await this.selectComponent('#sdk').sendDigits(this.data._DTMFValue);
// 挂断
await this.selectComponent('#sdk').terminate();
音频相关接口示例
音频相关接口示例
// 静音
this.selectComponent('#sdk').muteMic();
// 取消静音
this.selectComponent('#sdk').unMuteMic();
// 切换为耳麦模式,其中speaker表示扬声器,值ear表示耳麦。默认值为扬声器,只对手机有效
this.selectComponent('#sdk').setSoundMode('ear');
回调推送示例
回调推送示例
<tccc-agent-call-wx id="sdk" bind:accepted="onAccepted" bind:progress="onProgress" bind:ended="onEnded"/>
onProgress() {
// 外呼过程中
},
onAccepted() {
// 对端接听
},
onEnded(e:{ detail: { closeBy: string;mainReason?: string }; }) {
const {closeBy,mainReason} = e.detail;
this._addCallBackLog(`onEnded ${closeBy}, mainReason:${mainReason}`);
if (closeBy === 'admin') {
wx.showToast({
icon: 'none', // 自选合适的图标
title: '系统原因挂断'
})
} else if(closeBy === 'seat') {
wx.showToast({
icon: 'none', // 自选合适的图标
title: '通话结束,对方已挂断'
})
} else {
// 挂断成功
}
},