使用阿里云的语音服务
调用接口给单个被叫号码发送语音验证码或文本转语音类型的语音通知
为保证良好的外呼体验,每日12:00~14:00,21:00~次日09:00无法发起语音呼叫。
不要把RAM用户的AccessKey ID和AccessKey Secret保存在工程代码中,否则可能导致AK泄露,威胁您账号下所有资源的安全,如修改资金账号等。建议您使用STS或环境变量等方式获取访问授权。
AccessKey ID和AccessKey Secret的环境变量名:VMS_AK_ENV 、VMS_SK_ENV。
dotnet 示例代码
SDK 安装命令
dotnet add package AlibabaCloud.SDK.Dyvmsapi20170525 --version 4.0.0
示例代码
// This file is auto-generated, don't edit it. Thanks. using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using Tea; using Tea.Utils; namespace AlibabaCloud.SDK.Sample { public class Sample { /// <term><b>Description:</b></term> /// <description> /// <para>使用凭据初始化账号Client</para> /// </description> /// /// <returns> /// Client /// </returns> /// /// <term><b>Exception:</b></term> /// Exception public static AlibabaCloud.SDK.Dyvmsapi20170525.Client CreateClient() { // 工程代码建议使用更安全的无AK方式,凭据配置方式请参见:https://help.aliyun.com/document_detail/378671.html。 Aliyun.Credentials.Client credential = new Aliyun.Credentials.Client(); AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config { Credential = credential, }; // Endpoint 请参考 https://api.aliyun.com/product/Dyvmsapi config.Endpoint = "dyvmsapi.aliyuncs.com"; return new AlibabaCloud.SDK.Dyvmsapi20170525.Client(config); } public static void Main(string[] args) { AlibabaCloud.SDK.Dyvmsapi20170525.Client client = CreateClient(); AlibabaCloud.SDK.Dyvmsapi20170525.Models.SingleCallByTtsRequest singleCallByTtsRequest = new AlibabaCloud.SDK.Dyvmsapi20170525.Models.SingleCallByTtsRequest { CalledShowNumber = "057188888888", //呼出号码 CalledNumber = "1358880001",//目标号号 TtsCode = "TTS_32308888888", //模板ID PlayTimes = 1, TtsParam = "{\"name\":\"叶医生\",\"adders\":\"测试地址\",\"num\":1}", }; AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); try { // 复制代码运行请自行打印 API 的返回值 client.SingleCallByTtsWithOptions(singleCallByTtsRequest, runtime); } catch (TeaException error) { // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 // 错误 message Console.WriteLine(error.Message); // 诊断地址 Console.WriteLine(error.Data["Recommend"]); AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message); } catch (Exception _error) { TeaException error = new TeaException(new Dictionary<string, object> { { "message", _error.Message } }); // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 // 错误 message Console.WriteLine(error.Message); // 诊断地址 Console.WriteLine(error.Data["Recommend"]); AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message); } } } }
java示例
SDK 安装命令
<dependency> <groupId>com.aliyun</groupId> <artifactId>alibabacloud-dyvmsapi20170525</artifactId> <version>3.0.0</version> </dependency>
示例代码
// This file is auto-generated, don't edit it. Thanks. package demo; import com.aliyun.auth.credentials.Credential; import com.aliyun.auth.credentials.provider.StaticCredentialProvider; import com.aliyun.core.http.HttpClient; import com.aliyun.core.http.HttpMethod; import com.aliyun.core.http.ProxyOptions; import com.aliyun.httpcomponent.httpclient.ApacheAsyncHttpClientBuilder; import com.aliyun.sdk.service.dyvmsapi20170525.models.*; import com.aliyun.sdk.service.dyvmsapi20170525.*; import com.google.gson.Gson; import darabonba.core.RequestConfiguration; import darabonba.core.client.ClientOverrideConfiguration; import darabonba.core.utils.CommonUtil; import darabonba.core.TeaPair; //import javax.net.ssl.KeyManager; //import javax.net.ssl.X509TrustManager; import java.net.InetSocketAddress; import java.time.Duration; import java.util.*; import java.util.concurrent.CompletableFuture; import java.io.*; public class SingleCallByTts { public static void main(String[] args) throws Exception { // HttpClient Configuration /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder() .connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout time, the default is 10 seconds .responseTimeout(Duration.ofSeconds(10)) // Set the response timeout time, the default is 20 seconds .maxConnections(128) // Set the connection pool size .maxIdleTimeOut(Duration.ofSeconds(50)) // Set the connection pool timeout, the default is 30 seconds // Configure the proxy .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<your-proxy-hostname>", 9001)) .setCredentials("<your-proxy-username>", "<your-proxy-password>")) // If it is an https connection, you need to configure the certificate, or ignore the certificate(.ignoreSSL(true)) .x509TrustManagers(new X509TrustManager[]{}) .keyManagers(new KeyManager[]{}) .ignoreSSL(false) .build();*/ // Configure Credentials authentication information, including ak, secret, token StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set. .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // use STS token .build()); // Configure the Client AsyncClient client = AsyncClient.builder() .region("cn-hangzhou") // Region ID //.httpClient(httpClient) // Use the configured HttpClient, otherwise use the default HttpClient (Apache HttpClient) .credentialsProvider(provider) //.serviceConfiguration(Configuration.create()) // Service-level configuration // Client-level configuration rewrite, can set Endpoint, Http request parameters, etc. .overrideConfiguration( ClientOverrideConfiguration.create() // Endpoint 请参考 https://api.aliyun.com/product/Dyvmsapi .setEndpointOverride("dyvmsapi.aliyuncs.com") //.setConnectTimeout(Duration.ofSeconds(30)) ) .build(); // Parameter settings for API request SingleCallByTtsRequest singleCallByTtsRequest = SingleCallByTtsRequest.builder() .calledShowNumber("057188888888") .calledNumber("13588888888") .ttsCode("TTS_32888888") .playTimes(1) .ttsParam("{\"name\":\"叶\",\"adders\":\"测试\",\"num\":1}") // Request-level configuration rewrite, can set Http request parameters, etc. // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders())) .build(); // Asynchronously get the return value of the API request CompletableFuture<SingleCallByTtsResponse> response = client.singleCallByTts(singleCallByTtsRequest); // Synchronously get the return value of the API request SingleCallByTtsResponse resp = response.get(); System.out.println(new Gson().toJson(resp)); // Asynchronous processing of return values /*response.thenAccept(resp -> { System.out.println(new Gson().toJson(resp)); }).exceptionally(throwable -> { // Handling exceptions System.out.println(throwable.getMessage()); return null; });*/ // Finally, close the client client.close(); } }