文档

调用SDK

更新时间:

本章节为您介绍了调用阿里云语音服务SDK的具体步骤,您可以参考本文档,调用其他API实现对应功能。

前提条件

在使用语音服务SDK之前,您需要:

  • 开通语音服务SDK并购买语音号码,具体操作请参见真实号管理

  • 获取AccessKey信息,具体操作请参见获取AccessKey

  • 完成安装SDK,具体操作请参见Java SDK

说明

本章节以调用SingleCallByTts实现向指定号码发送语音验证码为您示例。

操作步骤

说明

调用接口前,需配置环境变量,通过环境变量读取访问凭证。AccessKey ID和AccessKey Secret的环境变量名:VMS_AK_ENV 、VMS_SK_ENV。配置详情请参见配置访问凭证

  1. 创建profile和client实例,并传入AccessKey信息。

    // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
    // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
    // 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
    DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("VMS_AK_ENV"), System.getenv("VMS_SK_ENV"));
    IAcsClient client = new DefaultAcsClient(profile);
    说明

    RegionId默认选择cn-hangzhou。

  2. 创建request实例,并设置请求参数。

    CommonRequest request = new CommonRequest();
    //请求方法分为POST和GET,建议您选择POST方式
    request.setMethod(MethodType.POST);  
    //Domain参数的默认值为dyvmsapi.aliyuncs.com     
    request.setDomain("dyvmsapi.aliyuncs.com");
    //当前语音服务SDK默认版本号为2017-05-25        
    request.setVersion("2017-05-25");
    //被叫显示号码信息
    request.putQueryParameter("CalledShowNumber", "1380000****");
    //被叫号码      
    request.putQueryParameter("CalledNumber", "02131****");
    //文本转语音(TTS)模板ID
    request.putQueryParameter("TtsCode", "TTS_177553");
    ...        
  3. 创建response实例,并传入请求参数。

    CommonResponse response = client.getCommonResponse(request);
  4. 打印输出信息。

    System.out.println(JSON.toJSONString(response));

操作样例

import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;

/*
pom.xml
<dependency>
 <groupId>com.aliyun</groupId>
 <artifactId>aliyun-java-sdk-core</artifactId>
 <version>4.0.3</version>
</dependency>
*/
public class SingleCallByTts {

  public static void main(String[] args) {
    // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
    // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
    // 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
    DefaultProfile profile = DefaultProfile.getProfile(
      "cn-hangzhou",
      System.getenv("VMS_AK_ENV"),
      System.getenv("VMS_SK_ENV")
    );
    IAcsClient client = new DefaultAcsClient(profile);
    CommonRequest request = new CommonRequest();
    request.setMethod(MethodType.POST);
    request.setDomain("dyvmsapi.aliyuncs.com");
    request.setVersion("2017-05-25");
    request.setAction("SingleCallByTts");
    request.putQueryParameter("RegionId", "cn-hangzhou");
    request.putQueryParameter("CalledShowNumber", "1862****");
    request.putQueryParameter("CalledNumber", "0213****");
    request.putQueryParameter("TtsCode", "TTS_177553");
    request.putQueryParameter("PlayTimes", "3");
    request.putQueryParameter("Volume", "60");
    try {
      CommonResponse response = client.getCommonResponse(request);
      System.out.println(response.getData());
    } catch (ServerException e) {
      e.printStackTrace();
    } catch (ClientException e) {
      e.printStackTrace();
    }
  }
}

返回示例如下所示:

  • 正常返回示例:

    {
      "RequestId": "AE3FE0F9-8301-4BD3-9996-174AC6981ABE",
      "Message": "OK",
      "CallId": "123856432324^11064938****",
      "Code": "OK"
    }
  • 异常返回示例:

    {
      "RequestId": "2105E752-A349-4A27-B83F-B6F5FC3D5734",
      "Message": "文本转语音模板不合法",
      "Code": "isv.TEMPLATE_ILLEGAL"
    }