语音服务——腾讯云

腾讯语音服务文档

一、开通语音消息服务流程

(1)注册并认证

  • 如果您还没有腾讯云账号,您需要 注册腾讯云 账号,并完成 企业实名认证。
  • 如果您已有企业认证的腾讯云账号,请直接进行下一步操作。

申请开通语音消息服务

说明:首次登录语音消息控制台时,需要申请开通语音消息服务。

登录 语音消息控制台,勾选【我已阅读并同意 腾讯云语音消息服务协议】,单击【开始接入】即可开通。

(2)创建应用

  1. 在左侧导航栏选择【应用管理】>【应用列表】。
  2. 单击【创建应用】,填写【应用名称】为测试,【应用简介】为测试语音消息
  3. 单击【创建】。

(3)购买语音号码

  1. 在左侧导航栏选择【应用管理】>【语音号码】,选择【当前应用】为测试
    购买语音号码前需提交企业资质并通过审核。
  2. 在【企业资质管理】页签,填写企业信息后单击【提交】,待审核通过后方可购买号码。
  3. 单击【购买号码】,进入语音号码购买页。
  4. 选择您所需的号码归属地和语音号码,可根据实际需求勾选语音号码到期后自动续费,单击【立即购买】。

    说明:单个企业最多支持购买5个语音号码。

  5. 核对所选号码信息,确认无误后单击【确认】。
  6. 选择您的支付方式,单击【立即支付】即购买完成。

(4)创建语音模板

  1. 在左侧导航栏选择【应用管理】>【语音模板】,选择【当前应用】为测试
  2. 单击【创建语音模板】。
  3. 结合实际情况设置以下参数:
    • 模板名称:输入验证码通知
    • 模板内容:输入您的验证码是{1},如非本人操作无需处理。
  4. 单击【确定】。
    等待语音模板审核,当状态变为【已通过】时,语音模板才可用。

(5)购买套餐包

  1. 在左侧导航栏选择【套餐包管理】,单击【购买套餐包】。
  2. 根据实际需求设置以下参数:
    • 套餐类型:选择【固定套餐包】。
    • 套餐配额:选择1万分钟。
    • 购买数量:选择1。
  3. 勾选【我已阅读并同意 腾讯云语音消息 《服务协议》】。
  4. 单击【立即购买】。
  5. 核对您需要购买的套餐包配额、数量及费用等信息,单击【确认购买】。
  6. 选择您的支付方式,单击【立即支付】。
    如果您需要开具发票,可以参考 发票 进行申请。

(6)发送语音消息

发送语音消息前,您需要检查确认语音模板已通过审核。
您可以调用 发送语音验证码 API 或 SDK 发送语音消息。

(7)查看发送结果

  1. 在 语音消息控制台,单击【统计分析】。
  2. 选择【语音记录】页签,输入手机号,选择【应用】为测试,设置时间段,单击【查询】筛选查看发送记录。

 

二、使用SDK发送语音消息

maven

<dependency>
<groupId>com.github.qcloudsms</groupId>
<artifactId>qcloudsms</artifactId>
<version>1.0.6</version>
</dependency>

准备必要参数

// 语音消息应用 SDK AppID
int appid = 1400009099; // SDK AppID 以1400开头
// 语音消息应用 App Key
String appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";
// 需要发送语音消息的手机号码
String[] phoneNumbers = {"21212313123", "12345678902", "12345678903"};
// 语音模板 ID,需要在语音消息控制台中申请
int templateId = 7839; // NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在语音消息控制台中申请

发送语音验证码

try {SmsVoiceVerifyCodeSender vvcsender = new SmsVoiceVerifyCodeSender(appid,appkey);SmsVoiceVerifyCodeSenderResult result = vvcsender.send("86", phoneNumbers[0],"5678", 2, "");System.out.println(result);
} catch (HTTPException e) {// HTTP 响应码错误e.printStackTrace();
} catch (JSONException e) {// JSON 解析错误e.printStackTrace();
} catch (IOException e) {// 网络 IO 错误e.printStackTrace();
}

指定模板发送语音通知

try {int templateId = 45221;String[] params = {"5678"};TtsVoiceSender tvsender = new TtsVoiceSender(appid, appkey);TtsVoiceSenderResult result = tvsender.send("86", phoneNumbers[0],templateId, params, 2, "");System.out.println(result);
} catch (HTTPException e) {// HTTP 响应码错误e.printStackTrace();
} catch (JSONException e) {// JSON 解析错误e.printStackTrace();
} catch (IOException e) {// 网络 IO 错误e.printStackTrace();
}

 

三、拨号记录回调接口

配置事件回调

  1. 登录 语音消息控制台。
  2. 您可以通过以下方式进入【基础配置】页签:
    • 在左侧导航栏选择【应用管理】>【应用列表】,单击目标应用卡片进入应用详情页,单击【基础配置】。
    • 在左侧导航栏选择【应用管理】>【基础配置】。
  3. 选择【当前应用】为待操作的目标应用。
  4. 单击【事件回调配置】区域的【设置】,勾选并输入对应的回调 URL。
  5. 单击【设置】即可保存。

(1)语音通知状态通知

通知业务方语音通知下发的状态。

URL 示例

POST https://example.com/voice/callback

请求参数

{"voiceprompt_callback": {"result": "0","accept_time": "1470197211","call_from": "","callid": "xxxxxx","end_calltime": "1470197221","fee": "1","mobile": "13xxxxxxxxx","nationcode": "86","start_calltime": "1470197196"}
}
参数必选类型描述
voiceprompt_callbackobject通知状态回调,详细参数说明请参见下方表格

参数voiceprompt_callback

参数必选类型描述
resultstring错误码,0表示用户正常接听,1表示用户未接听, 2表示呼叫异常
accept_timestring用户接听时间
call_fromstring呼入号码
callidstring标识本次发送 ID
end_calltimestring结束语音通知呼叫时间
feestring计费时长,单位为分钟
mobilestring手机号码
nationcodestring国家(或地区)码
start_calltimestring开始发起语音通知呼叫时间

响应参数

{"result": 0,"errmsg": "OK"
}
参数必选类型描述
resultnumber错误码,0表示成功,非0表示失败
errmsgstring错误消息,result 非0时的具体错误信息

 

(2)语音通知按键通知

通知业务方被叫用户按下的键。

URL 示例

POST https://example.com/voice/callback

请求参数

{"voicekey_callback": {"call_from": "","callid": "xxxxxx","keypress": "2","mobile": "13xxxxxxxxx","nationcode": "86"}
}
参数必选类型描述
voicekey_callbackobject通知按键通知回调,详细参数说明请参见下方表格

参数voicekey_callback

参数必选类型描述
call_fromstring呼入号码
callidstring标识本次发送 ID
keypressstring用户按下的键
mobilestring手机号码
nationcodestring国家(或地区)码

响应参数

{"result": 0,"errmsg": "OK"
}
参数必选类型描述
resultnumber错误码,0表示成功,非0表示失败
errmsgstring错误消息,result 非0时的具体错误信息

(3)语音送达失败原因通知

语音消息系统可以向语音验证码或语音通知下发失败的被叫号码推送失败原因。

URL 示例

POST https://example.com/voice/callback

请求参数

{"voice_failure_callback": {"call_from": "075583763333","callid": "xxxxxx","failure_code": 8,"failure_reason": "空号","mobile": "13xxxxxxxxx","nationcode": "86"}
}
参数必选类型描述
voice_failure_callbackobject语音送达失败原因推送回调,详细参数说明请参见下方表格

参数voice_failure_callback

参数必选类型描述
call_fromstring呼入号码
callidstring标识本次发送 ID
failure_codenumber失败错误码,详情请参见 推送回执相关错误码
failure_reasonstring失败原因
mobilestring手机号码
nationcodestring国家(或地区)码

响应参数

{"result": 0,"errmsg": "OK"
}
参数必选类型描述
resultnumber0表示成功,非0表示失败
errmsgstringresult 非0时的具体错误信息

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Visual Studio交叉编译器提供对ARM的支持

只要ARM平台能够运行Windows&#xff0c;Visual Studio就有能力拓展ARM平台。在Visual Studio 2017 15.5预览版2中&#xff0c;该IDE通过使用GCC编译器&#xff0c;增加了对基于ARM的计算机和物联网&#xff08;IoT&#xff09;设备的支持力度&#xff0c;从而扩展了对ARM平台的…

我心中的ASP.NET Core 新核心对象WebHost(二)

这是ASP.NET Core新核心对象系列的第二篇&#xff0c;上一篇 WebHost准备阶段 我们讲到了WebHostBuilder的初始化及配置。我们给WebHostBuilder进行以下配置 UseKestrel 设置Kestrel为HttpServer ConfigureAppConfiguration 设置了配置文件 ConfigureLogging 配置了日志处理器…

Hadoop生态Flume(三)拦截器(Interceptor)介绍与使用(1)

转载自 Flume中的拦截器&#xff08;Interceptor&#xff09;介绍与使用&#xff08;一&#xff09; Flume中的拦截器&#xff08;interceptor&#xff09; 用户Source读取events发送到Sink的时候&#xff0c;在events header中加入一些有用的信息&#xff0c;或者对events的…

SOA对微服务的残余影响

近日&#xff0c;Tareq Abedrabbo在伦敦2017 Con微服务大会上说&#xff0c;SOA对微服务架构设计的残余影响仍然存在&#xff0c;包括技术选型和组织方面的问题。最直接的一个例子就是大多数企业仍然区分对待架构师和开发人员&#xff0c;架构师负责出规范&#xff0c;开发人员…

Hadoop生态Flume(四)拦截器(Interceptor)介绍与使用(2)

转载自 Flume中的拦截器&#xff08;Interceptor&#xff09;介绍与使用&#xff08;二&#xff09; lume中的拦截器&#xff08;interceptor&#xff09;&#xff0c;用户Source读取events发送到Sink的时候&#xff0c;在events header中加入一些有用的信息&#xff0c;或者对…

协作更进一步:微软隆重介绍Visual Studio动态分享功能

微软刚刚在 Visual Studio Code 网站上宣布了“动态分享”&#xff08;Live Share&#xff09;功能&#xff0c;开发者们可以在 VS 2017 或 VS Code 中体验全新的实施协作。微软表示&#xff0c;Live Share 可让团队在相同的代码库上启用快速协作&#xff0c;而无需同步代码或配…

python打包exe文件

首先安装pyinstaller pip3 install pyinstaller接着导报指定文件 pyinstaller.exe -F 文件路径文件名 举例 pyinstaller.exe -F C:\Users\Tecna1205\Desktop\工作目录\Python工作目录\测试\3.3\test\tk.py 如果有图形界面&#xff0c;不想打开命令行&#xff0c;可在打包命令…

使用MS Test做单元测试

声明&#xff1a;本篇博客翻译自&#xff1a;http://www.c-sharpcorner.com/article/unit-testing-with-ms-tests-in-c-sharp/ 写在翻译之前&#xff1a; 依然清晰的记得刚工作的第一个项目中&#xff0c;在完成一个功能模块开发后&#xff0c;师傅让我把代码做一下单元测试。当…

Vue组件传参

父组件向子组件传参 数据&#xff1a; 父组件 <test :message"msg"></test>msg: Hello uniApp子组件&#xff08;test.vue&#xff09; <text>{{message}}</text>props:["message"]子组件向父组件传参 子组件&#xff1a; &…

如果不懂Service mesh,就不要谈微服务了

提到微服务&#xff0c;spring cloud等经典框架被使用的最为广泛&#xff0c;但是在2016年才被提起的Service Mesh&#xff0c;已经被Paypal、Lyft、Ticketmaster和Credit Karma等等一些大流量平台所使用&#xff0c;在生产应用中添加了Service mesh。今年随着Linkerd传入国内&…

使用AspectCore动态代理

前言 最近越来越多的同学关注到AspectCore&#xff0c;并且提出不少中肯的建议&#xff0c;其中最多的提议是希望能够看到更多的关于AspectCore使用方式的文章和Demo。那么在这篇文章里&#xff0c;我们就来聊聊AspectCore核心之一的动态代理。 动态代理 在.NET平台中&#xff…

已经安装完成mysql后wamp怎么配置

如果之前安装过mysql&#xff0c;然后想要安装wamp&#xff0c;那么怎么配置呢 先安装好wamp&#xff0c;然后在以下目录中修改my.ini 将密码改为自己的mysql密码即可 这时你发现启动wamp还是黄的 不要慌&#xff0c;因为你已经安装过了wamp&#xff0c;所以wamp自己的mys…

通过 Visual Studio 的“代码度量值”来改进代码质量

1 软件度量值指标 1.1 可维护性指数 表示源代码的可维护性&#xff0c;数值越高可维护性越好。该值介于0到100之间。绿色评级在20到100之间&#xff0c;表明该代码具有高度的可维护性&#xff1b;黄色评级在10到19之间&#xff0c;表示该代码适度可维护&#xff1b;红色评级在0…

php如何接收前端返回的各种类型的数据

之前学习node后端的时候&#xff0c;因为始终无法在网上找到接收json数据的函数&#xff0c;所以后来就放弃了。最近又心血来潮&#xff0c;想学习php. 这次已经有了之前学习php的基础&#xff0c;所以直接入手thinkphp5.0 这次php的学习&#xff0c;主要是为了解决之前遗留的问…

ASP.NET Core 认证与授权[5]:初识授权

经过前面几章的姗姗学步&#xff0c;我们了解了在 ASP.NET Core 中是如何认证的&#xff0c;终于来到了授权阶段。在认证阶段我们通过用户令牌获取到用户的Claims&#xff0c;而授权便是对这些的Claims的验证&#xff0c;如&#xff1a;是否拥有Admin的角色&#xff0c;姓名是否…

uni-app打包h5

如果我们想打包成直接浏览的h5&#xff0c;我们需要配置manifest.json这个文件&#xff0c;在其中的h5配置中加入publicPath配置&#xff0c;配置如下&#xff1a; 代码为&#xff1a; "h5" : {"publicPath": "./"},配置好这个后&#xff0c;以后…

[52ABP实战系列] .NET CORE实战入门视频课程出来啦

“ .NET CORE实战入门视频&#xff0c;要是有讲的不好的地方&#xff0c;还请留言。” 早安&#xff01; 各位道友好&#xff0c;.NET CORE入门视频的第一章已经录制完毕了。视频会放在传课网、网易云课堂及segment fault。 本来想的是第一章合计6个小节就可以播放完毕的&#…

ASP.NET Core缓存静态资源

背景 缓存样式表&#xff0c;JavaScript或图像文件等静态资源可以提高您网站的性能。在客户端&#xff0c;总是从缓存中加载一个静态文件&#xff0c;这样可以减少对服务器的请求数量&#xff0c;从而减少获取页面及其资源的时间。在服务器端&#xff0c;由于它们的请求较少&am…

【程序员】保持一颗虚心好学的心态去敲代码

最近&#xff0c;我感觉是自己突破最大的一段时间&#xff0c;为什么呢&#xff1f;主要是打通了接口这一块&#xff0c;就是用postman发送各种数据&#xff0c;我都能用后端接受到相关数据&#xff0c;并且解析出来。 在这之前我尝试过spring boot 和node&#xff0c;前者是太…

跟着老桂学ASP.NET Core 2.0

.net core作为微软开发技术中跨平台的利器&#xff0c;2.0的发布已经有一段时间了&#xff0c;asp.net core是新一代微软的BS开发框架&#xff0c;同时兼容.net core和.net framework&#xff0c;它的出现&#xff0c;使基于微软体系的BS开发迎来新的契机&#xff0c;开源&…