Python SDK

最近更新时间:2021-02-20 11:53:51

SDK 3.0是云 API 3.0平台的配套工具,您可以通过 SDK 使用所有 语音消息 API。新版 SDK 实现了统一化,具有各个语言版本的 SDK 使用方法相同,接口调用方式相同,错误码相同以及返回包格式相同等优点。

注意:

  • 发送语音验证码
    只需提供验证码数字,如需自定义内容,可以 发送语音通知。例如,当 msg=“5678” 时,您收到的语音通知为您的语音验证码是五六七八。
  • 发送语音通知
    数字默认按照个十百千万进行播报,可通过在数字前添加英文逗号(,)改变播报方式。例如,当 msg=您的语音验证码是5678。 时,您收到的语音通知为您的语音验证码是五千六百七十八。,当 msg=您的语音验证码是5,6,7,8。时,您收到的语音通知为您的语音验证码是五六七八。

前提条件

  • 已开通语音消息服务,具体操作请参见 快速入门
  • 已准备依赖环境:Python 2.7, 3.6-3.9 版本。
  • 已在访问管理控制台 >【API密钥管理】页面获取 SecretID 和 SecretKey。
    • SecretID 用于标识 API 调用者的身份。
    • SecretKey 用于加密签名字符串和服务器端验证签名字符串的密钥,SecretKey 需妥善保管,避免泄露
  • 语音消息的调用地址为vms.tencentcloudapi.com

相关资料

安装 SDK

通过 pip 安装(推荐)

  1. 下载并安装 pip
  2. 执行以下命令安装 SDK。
    pip install tencentcloud-sdk-python

通过源码包安装

  1. 前往 Github 代码托管地址快速下载地址 下载最新代码。
  2. 解压后依次执行以下命令安装 SDK。
    $ cd tencentcloud-sdk-python
    $ python setup.py install

示例代码

说明:

所有示例代码仅作参考,无法直接编译和运行,需根据实际情况进行修改,您也可以根据实际需求使用 API 3.0 Explorer 自动化生成 Demo 代码。

每个接口都有一个对应的 Request 结构和一个 Response 结构。示例代码如下所示。

发送语音验证码

# -*- coding: utf-8 -*-
from tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
# 导入 VMS 模块的 client models
from tencentcloud.vms.v20200902 import vms_client, models
# 导入可选配置类
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
try:
  # 必要步骤:
  # 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey
  # 本示例采用从环境变量读取的方式,需要预先在环境变量中设置这两个值
  # 您也可以直接在代码中写入密钥对,但需谨防泄露,不要将代码复制、上传或者分享给他人
  # CAM 密钥查询:https://console.cloud.tencent.com/cam/capi
  cred = credential.Credential("secretId", "secretKey")
  # cred = credential.Credential(
  #     os.environ.get(""),
  #     os.environ.get("")
  # )
   # 实例化一个 http 选项,可选,无特殊需求时可以跳过
  httpProfile = HttpProfile()
  httpProfile.reqMethod = "POST"  # POST 请求(默认为 POST 请求)
  httpProfile.reqTimeout = 30    # 请求超时时间,单位为秒(默认60秒)
  httpProfile.endpoint = "vms.tencentcloudapi.com"  # 指定接入地域域名(默认就近接入)
   # 非必要步骤:
  # 实例化一个客户端配置对象,可以指定超时时间等配置
  clientProfile = ClientProfile()
  clientProfile.signMethod = "TC3-HMAC-SHA256"  # 指定签名算法
  clientProfile.language = "en-US"
  clientProfile.httpProfile = httpProfile
    # 实例化 VMS 的 client 对象
  # 第二个参数是地域信息,可以直接填写字符串 ap-guangzhou,或者引用预设的常量
  client = vms_client.VmsClient(cred, "ap-guangzhou", clientProfile)
   # 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数
  # 您可以直接查询 SDK 源码确定 SendCodeVoiceRequest 有哪些属性可以设置
  # 属性可能是基本类型,也可能引用了另一个数据结构
  # 推荐使用 IDE 进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明
  # 实例化一个请求对象
  req = models.SendCodeVoiceRequest()
   # 基本类型的设置:
  # SDK 采用的是指针风格指定参数,即使对于基本类型也需要用指针来对参数赋值
  # SDK 提供对基本类型的指针引用封装函数
  # 帮助链接:
  # 语音消息控制台:https://console.cloud.tencent.com/vms
  # vms helper:https://cloud.tencent.com/document/product/1128/37720
   # 验证码,仅支持填写数字,实际播报语音时,会自动在数字前补充语音文本"您的验证码是"
  req.CodeMessage = "xxxx"
  # 被叫手机号码,采用 e.164 标准,格式为+[国家或地区码][用户号码]
  # 例如:+8613711112222,其中前面有一个+号,86为国家码,13711112222为手机号
  req.CalledNumber = "+8613711112222"
  # 在 [语音控制台] 添加应用后生成的实际SdkAppid,示例如1400006666
  req.VoiceSdkAppid = "1400006666"
  # 播放次数,可选,最多3次,默认2次
  req.PlayTimes = 2
  # 用户的 session 内容,腾讯 server 回包中会原样返回
  req.SessionContext = "xxxx"
   # 通过 client 对象调用 SendCodeVoice 方法发起请求,注意方法名与请求的对象是对应的
  resp = client.SendCodeVoice(req)
   # 输出 json 格式的字符串回包
  print(resp.to_json_string())
except TencentCloudSDKException as err:
  print(err)

指定模版发送语音通知

# -*- coding: utf-8 -*-
from tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
# 导入 VMS 模块的 client models
from tencentcloud.vms.v20200902 import vms_client, models
# 导入可选配置类
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
try:
  # 必要步骤:
  # 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey
  # 本示例采用从环境变量读取的方式,需要预先在环境变量中设置这两个值
  # 您也可以直接在代码中写入密钥对,但需谨防泄露,不要将代码复制、上传或者分享给他人
  # CAM 密钥查询:https://console.cloud.tencent.com/cam/capi
  cred = credential.Credential("AKIDonWyGLFi3EsPlGcg68KJp43zau0xxxxx", "ThjhNq68uTSv7GCsGSP6ZorjKhuxxxxx")
  # cred = credential.Credential(
  #     os.environ.get(""),
  #     os.environ.get("")
  # )
   # 实例化一个 http 选项,可选,无特殊需求时可以跳过
  httpProfile = HttpProfile()
  httpProfile.reqMethod = "POST"  # POST 请求(默认为 POST 请求)
  httpProfile.reqTimeout = 30    # 请求超时时间,单位为秒(默认60秒)
  httpProfile.endpoint = "vms.tencentcloudapi.com"  # 指定接入地域域名(默认就近接入)
   # 非必要步骤:
  # 实例化一个客户端配置对象,可以指定超时时间等配置
  clientProfile = ClientProfile()
  clientProfile.signMethod = "TC3-HMAC-SHA256"  # 指定签名算法
  clientProfile.language = "en-US"
  clientProfile.httpProfile = httpProfile
    # 实例化 VMS 的 client 对象
  # 第二个参数是地域信息,可以直接填写字符串 ap-guangzhou,或者引用预设的常量
  client = vms_client.VmsClient(cred, "ap-guangzhou", clientProfile)
   # 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数
  # 您可以直接查询 SDK 源码确定 SendCodeVoiceRequest 有哪些属性可以设置
  # 属性可能是基本类型,也可能引用了另一个数据结构
  # 推荐使用 IDE 进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明
  # 实例化一个请求对象
  req = models.SendTtsVoiceRequest()
   # 基本类型的设置:
  # SDK 采用的是指针风格指定参数,即使对于基本类型也需要用指针来对参数赋值
  # SDK 提供对基本类型的指针引用封装函数
  # 帮助链接:
  # 语音消息控制台:https://console.cloud.tencent.com/vms
  # vms helper:https://cloud.tencent.com/document/product/1128/37720
   # 模板 ID,必须填写在控制台审核通过的模板 ID,可登录 [语音消息控制台] 查看模板 ID
  req.TemplateId = "4356"
  # 模板参数,若模板没有参数,请提供为空数组
  req.TemplateParamSet = ["7652"]
  # 被叫手机号码,采用 e.164 标准,格式为+[国家或地区码][用户号码]
  # 例如:+8613711112222,其中前面有一个+号,86为国家码,13711112222为手机号
  req.CalledNumber = "+8613711112222"
  # 在语音控制台添加应用后生成的实际SdkAppid,示例如1400006666
  req.VoiceSdkAppid = "1400006666"
  # 播放次数,可选,最多3次,默认2次
  req.PlayTimes = 2
  # 用户的 session 内容,腾讯 server 回包中会原样返回
  req.SessionContext = "xxxx"
   # 通过 client 对象调用 SendTtsVoice 方法发起请求,注意方法名与请求的对象是对应的
  resp = client.SendTtsVoice(req)
   # 输出 json 格式的字符串回包
  print(resp.to_json_string())
except TencentCloudSDKException as err:
  print(err)
目录