本文为您展示了语音通知功能的实现方法。您可以通过调用SingleCallByVoice发起语音文件类型的语音通知,调用SingleCallByTts发起文本转语音类型的语音通知。
功能介绍
语音通知可解决通知到达率延迟、关注度不高、阅读体验差等问题,并且您可以通过电话获得更全面的信息通知。您只需要提前设置通知模版内容,调用API就可以给用户推送语音通知,并可以设置播放音量、播放次数等。
准备工作
在实现调用API实现语音通知功能前,您需要完成以下操作:
- 在语音号码页面完成资质的申请和号码的购买。
- 在文本转语音模板页面完成模板申请,或在语音通知文件页面完成文件上传。
- 获取AccessKey信息,详情请参见获取AccessKey。
- 完成本地SDK环境搭建,详情请参见安装SDK。
代码示例
本示例展示了如何调用SingleCallByVoice接口发送语音通知。接口参数详情,请参见SingleCallByVoice和SingleCallByTts。
如果您需要进行调试,请参见使用OpenAPI Explorer。
// This file is auto-generated, don't edit it. Thanks.
package com.aliyun;
import com.aliyun.tea.*;
public class Client {
/**
* 使用AK&SK初始化账号Client
* @param accessKeyId
* @param accessKeySecret
* @param regionId
* @return Client
* @throws Exception
*/
public static com.aliyun.dyvmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret, String regionId) throws Exception {
com.aliyun.tearpc.models.Config config = new com.aliyun.tearpc.models.Config();
// 您的AccessKey ID
config.accessKeyId = accessKeyId;
// 您的AccessKey Secret
config.accessKeySecret = accessKeySecret;
// 您的可用区ID
config.regionId = regionId;
return new com.aliyun.dyvmsapi20170525.Client(config);
}
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
com.aliyun.dyvmsapi20170525.Client client = Client.createClient("accessKeyId", "accessKeySecret", "regionId");
com.aliyun.dyvmsapi20170525.models.SingleCallByVoiceRequest request = com.aliyun.dyvmsapi20170525.models.SingleCallByVoiceRequest.build(TeaConverter.buildMap(
// 被叫显号,若您使用的模板为公共号池号码外呼模板,则该字段值必须为空;
// 若您使用的模板为专属号码外呼模板,则必须传入已购买的号码,仅支持一个号码,您可以在语音服务控制台上查看已购买的号码。
new TeaPair("calledShowNumber", "18850xxxx"),
// 被叫号码。仅支持中国内地号码。一次请求仅支持一个被叫号。
new TeaPair("calledNumber", "15750xxxx"),
// 语音文件的语音ID。
new TeaPair("voiceCode", "e271f3f2-e155-4366-a9f4-0fe55765b3ec.wav")
));
com.aliyun.dyvmsapi20170525.models.SingleCallByVoiceResponse response = client.singleCallByVoice(request);
com.aliyun.teaconsole.Client.log(response.message);
}
}
# This file is auto-generated, don't edit it. Thanks.
from alibabacloud_dyvmsapi20170525.client import Client as DyvmsapiClientClient
from alibabacloud_tea_rpc import models as _rpc_models
from alibabacloud_dyvmsapi20170525 import models as dyvmsapi_client_models
from alibabacloud_tea_console.client import Client as ConsoleClient
class Client:
@staticmethod
def create_client(access_key_id, access_key_secret, region_id):
"""
使用AK&SK初始化账号Client
:type access_key_id: str
:param access_key_id:
:type access_key_secret: str
:param access_key_secret:
:type region_id: str
:param region_id:
:return: Client
@throws Exception
"""
config = _rpc_models.Config(
)
# 您的AccessKey ID
config.access_key_id = access_key_id
# 您的AccessKey Secret
config.access_key_secret = access_key_secret
# 您的可用区ID
config.region_id = region_id
return DyvmsapiClientClient(config)
@staticmethod
def main(args):
"""
:param args:
@throws Exception
"""
client = create_client("accessKeyId", "accessKeySecret", "regionId")
request = dyvmsapi_client_models.SingleCallByVoiceRequest(
called_show_number="18850xxxx",
called_number="15750xxxx",
voice_code="e271f3f2-e155-4366-a9f4-0fe55765b3ec.wav"
)
response = client.single_call_by_voice(request)
ConsoleClient.log(response.message)
def __init__(self):
pass
// This file is auto-generated, don't edit it. Thanks.
package client
import (
dyvmsapiclient "github.com/alibabacloud-go/dyvmsapi-20170525/client"
rpc "github.com/alibabacloud-go/tea-rpc/client"
console "github.com/alibabacloud-go/tea-console/client"
"github.com/alibabacloud-go/tea/tea"
)
/**
* 使用AK&SK初始化账号Client
* @param accessKeyId
* @param accessKeySecret
* @param regionId
* @return Client
* @throws Exception
*/
func CreateClient (accessKeyId *string, accessKeySecret *string, regionId *string) (_result *dyvmsapiclient.Client, _err error) {
config := &rpc.Config{}
// 您的AccessKey ID
config.AccessKeyId = accessKeyId
// 您的AccessKey Secret
config.AccessKeySecret = accessKeySecret
// 您的可用区ID
config.RegionId = regionId
_result = &dyvmsapiclient.Client{}
_result, _err = dyvmsapiclient.NewClient(config)
return _result, _err
}
/**
* @param args
* @throws Exception
*/
func Main (args []*string) (_err error) {
client, _err := CreateClient(tea.String("accessKeyId"), tea.String("accessKeySecret"), tea.String("regionId"))
if _err != nil {
return _err
}
request := &dyvmsapiclient.SingleCallByVoiceRequest{
// 被叫显号,若您使用的模板为公共号池号码外呼模板,则该字段值必须为空;
// 若您使用的模板为专属号码外呼模板,则必须传入已购买的号码,仅支持一个号码,您可以在语音服务控制台上查看已购买的号码。
CalledShowNumber: tea.String("18850xxxx"),
// 被叫号码。仅支持中国内地号码。一次请求仅支持一个被叫号。
CalledNumber: tea.String("15750xxxx"),
// 语音文件的语音ID。
VoiceCode: tea.String("e271f3f2-e155-4366-a9f4-0fe55765b3ec.wav"),
}
response, _err := client.SingleCallByVoice(request)
if _err != nil {
return _err
}
console.Log(response.Message)
return _err
}
<?php
// This file is auto-generated, don't edit it. Thanks.
namespace Alibabacloud\Dyvmsapi20170525;
use AlibabaCloud\SDK\Dyvmsapi\V20170525\Dyvmsapi;
use AlibabaCloud\Tea\Console\Console;
use AlibabaCloud\Tea\Rpc\Rpc\Config;
use AlibabaCloud\SDK\Dyvmsapi\V20170525\Models\SingleCallByVoiceRequest;
use AlibabaCloud\SDK\Dyvmsapi\V20170525\Models\SingleCallByVoiceResponse;
class Client {
/**
* 使用AK&SK初始化账号Client
* @param string $accessKeyId
* @param string $accessKeySecret
* @param string $regionId
* @return Dyvmsapi Client
*/
public static function createClient($accessKeyId, $accessKeySecret, $regionId){
$config = new Config([]);
// 您的AccessKey ID
$config->accessKeyId = $accessKeyId;
// 您的AccessKey Secret
$config->accessKeySecret = $accessKeySecret;
// 您的可用区ID
$config->regionId = $regionId;
return new Dyvmsapi($config);
}
/**
* @param array $args
* @return void
*/
public static function main($args){
$client = self::createClient("accessKeyId", "accessKeySecret", "regionId");
$request = new SingleCallByVoiceRequest([
// 被叫显号,若您使用的模板为公共号池号码外呼模板,则该字段值必须为空;
// 若您使用的模板为专属号码外呼模板,则必须传入已购买的号码,仅支持一个号码,您可以在语音服务控制台上查看已购买的号码。
"calledShowNumber" => "18850xxxx",
// 被叫号码。仅支持中国内地号码。一次请求仅支持一个被叫号。
"calledNumber" => "15750xxxx",
// 语音文件的语音ID。
"voiceCode" => "e271f3f2-e155-4366-a9f4-0fe55765b3ec.wav"
]);
$response = $client->singleCallByVoice($request);
Console::log($response->message);
}
}
// 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 com.aliyun
{
public class Client
{
/**
* 使用AK&SK初始化账号Client
* @param accessKeyId
* @param accessKeySecret
* @param regionId
* @return Client
* @throws Exception
*/
public static AlibabaCloud.SDK.Dyvmsapi20170525.Client CreateClient(string accessKeyId, string accessKeySecret, string regionId)
{
AlibabaCloud.RPCClient.Models.Config config = new AlibabaCloud.RPCClient.Models.Config();
// 您的AccessKey ID
config.AccessKeyId = accessKeyId;
// 您的AccessKey Secret
config.AccessKeySecret = accessKeySecret;
// 您的可用区ID
config.RegionId = regionId;
return new AlibabaCloud.SDK.Dyvmsapi20170525.Client(config);
}
/**
* @param args
* @throws Exception
*/
public static void Main(string[] args)
{
AlibabaCloud.SDK.Dyvmsapi20170525.Client client = Client.CreateClient("accessKeyId", "accessKeySecret", "regionId");
AlibabaCloud.SDK.Dyvmsapi20170525.Models.SingleCallByVoiceRequest request = new AlibabaCloud.SDK.Dyvmsapi20170525.Models.SingleCallByVoiceRequest
{
// 被叫显号,若您使用的模板为公共号池号码外呼模板,则该字段值必须为空;
// 若您使用的模板为专属号码外呼模板,则必须传入已购买的号码,仅支持一个号码,您可以在语音服务控制台上查看已购买的号码。
CalledShowNumber = "18850xxxx",
// 被叫号码。仅支持中国内地号码。一次请求仅支持一个被叫号。
CalledNumber = "15750xxxx",
// 语音文件的语音ID。
VoiceCode = "e271f3f2-e155-4366-a9f4-0fe55765b3ec.wav",
};
AlibabaCloud.SDK.Dyvmsapi20170525.Models.SingleCallByVoiceResponse response = client.SingleCallByVoice(request);
AlibabaCloud.TeaConsole.Client.Log(response.Message);
}
}
}
// This file is auto-generated, don't edit it
import DyvmsapiClient, * as $DyvmsapiClient from '@alicloud/dyvmsapi20170525';
import RPC, * as $RPC from '@alicloud/rpc-client';
import Console from '@alicloud/tea-console';
import * as $tea from '@alicloud/tea-typescript';
export default class Client {
/**
* 使用AK&SK初始化账号Client
* @param accessKeyId
* @param accessKeySecret
* @param regionId
* @return Client
* @throws Exception
*/
static createClient(accessKeyId: string, accessKeySecret: string, regionId: string): DyvmsapiClient {
let config = new $RPC.Config({ });
// 您的AccessKey ID
config.accessKeyId = accessKeyId;
// 您的AccessKey Secret
config.accessKeySecret = accessKeySecret;
// 您的可用区ID
config.regionId = regionId;
return new DyvmsapiClient(config);
}
/**
* @param args
* @throws Exception
*/
static async main(args: string[]): Promise<void> {
let client = Client.createClient("accessKeyId", "accessKeySecret", "regionId");
let request = new $DyvmsapiClient.SingleCallByVoiceRequest({
// 被叫显号,若您使用的模板为公共号池号码外呼模板,则该字段值必须为空;
// 若您使用的模板为专属号码外呼模板,则必须传入已购买的号码,仅支持一个号码,您可以在语音服务控制台上查看已购买的号码。
calledShowNumber: "18850xxxx",
// 被叫号码。仅支持中国内地号码。一次请求仅支持一个被叫号。
calledNumber: "15750xxxx",
// 语音文件的语音ID。
voiceCode: "e271f3f2-e155-4366-a9f4-0fe55765b3ec.wav",
});
let response = await client.singleCallByVoice(request);
Console.log(response.message);
}
}
执行结果
正常返回结果如下所示:
{
"Message": "OK",
"RequestId": "4ABF7FB6-449C-4624-8CC6-9AAE3684****",
"Code": "OK",
"CallId": "1187209624900105518****"
}
调用SDK返回错误码,详情请参见错误码列表。
在文档使用中是否遇到以下问题
更多建议
匿名提交