阿里云语音通知API试接入

阿里云语音通知API试接入

文档地址

1.安装SDK

composer require alibabacloud/dyvmsapi-20170525

2.准备工作

在“语音号码”页面完成资质的申请和号码的购买。
在“文本转语音模板”页面完成模板申请,或在“语音通知文件”页面完成文件上传。
获取AccessKey信息,详情请参见获取AccessKey。
完成本地SDK环境搭建,详情请参见安装SDK。

3.代码示例



// 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;

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", "cn-hangzhou");
        $request = new SingleCallByVoiceRequest([
            // 被叫显号,若您使用的模板为公共号池号码外呼模板,则该字段值必须为空;
            // 若您使用的模板为专属号码外呼模板,则必须传入已购买的号码,仅支持一个号码,您可以在语音服务控制台上查看已购买的号码。
            "calledShowNumber" => "18850xxxx",
            // 被叫号码。仅支持中国内地号码。一次请求仅支持一个被叫号。
            "calledNumber" => "15750xxxx",
            // 语音文件的语音ID。
            "voiceCode" => "e271f3f2-e155-4366-a9f4-0fe55765b3ec.wav"
            ]);
        $response = $client->singleCallByVoice($request);
        Console::log($response->message);
    }
     /**
     * 语音验证码通知
     * @param array $args
     * @return void
     */
    public static function call($args){
        $client = self::createClient("填写你的accessKeyId", "填写你的accessKeySecret", "cn-hangzhou");
        $request = new SingleCallByTtsRequest([
            // 被叫显号,若您使用的模板为公共号池号码外呼模板,则该字段值必须为空;
            // 若您使用的模板为专属号码外呼模板,则必须传入已购买的号码,仅支持一个号码,您可以在语音服务控制台上查看已购买的号码。
            "calledShowNumber" => \Yii::$app->params['DyvmsConfig']['CalledShowNumber'],
            // 被叫号码。仅支持中国内地号码。一次请求仅支持一个被叫号。
            "calledNumber" => $args['phone'],
            // 语音文件的语音ID。
            "ttsCode" => \Yii::$app->params['DyvmsConfig']['TtsCode'],
            'outId'=>$args['outId'],
            "accessKeyId" => \Yii::$app->params['DyvmsConfig']['AccessKeyId']	//补坑(签名错误)
        ]);
        return $client->SingleCallByTts($request);
    }
}

4.返回结果

{
  "Message": "OK",
  "RequestId": "4ABF7FB6-449C-4624-8CC6-9AAE3684xxxx",
  "Code": "OK",
  "CallId": "118720962490^10551812xx"
}

最后:

最后最后补充一个语音验证码文档的坑,实力化Request传参数的时候,文档少了一个参数,导致总是报签名不一致的错误。

你可能感兴趣的:(php,Yii2,yii,阿里云)