使用阿里大鱼短信接口
注册
- 进入大鱼页面,如果没有账号,则自行注册,再此不在过多详述。
- 注册完成或者有账号的则在首页中点击加入“加入阿里大鱼”,如下:
创建引用
点击“管理中心”,然后再点击右上角的进入“开发者控制台”。
点击右上角的“创建应用”。
点击其他,选择“阿里大鱼”应用标签,创建应用。
输入应用名称,创建应用即可获得App Key。
创建应用后自动跳转至应用管理页,通过概览可以查看当前应用的APP证书,查看App Key,App Secret。
申请订阅接口
- 进入需要订阅消息的应用。
2.进入“消息服务—订阅消息”,找到alibaba_aliqin_FcSmsDR订阅短信发送结果报告,找到alibaba_aliqin_FcCallCdr订阅语音呼叫结果报告。
应用开发
根据开发语言选择板本生成对应SDK,(控制台-SDK下载,请获取权限后再生成SDK)(大概需3分钟),支持JAVA、PHP、Python、 .NET、 Metadata、 nodejs,这里下载的是PHP的SDK。
下载sdk,是压缩文件,解压即可,将得到以下文件:
将代码导入到您的开发工程中
在top/request中以下标记为我们发送短信中需要使用到的接口文件。
在API文档中查看调用示例与传参规则。
测试
发送普通短信
<?php
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');
error_reporting('ALL');
//发送普通短信
$c = new TopClient;
//当前短信应用中的App Key
$c->appkey = '11111';//当前短信应用中的App Secret
$c->secretKey = 'aaaaaaaaaaaaaaaaaaaa';
$req = new AlibabaAliqinFcSmsNumSendRequest;//短信类型,传入值请填写norma,这个参数的配置一定不能写错,也就是不能放在下面配置之后
$req->setSmsType("normal");//短信签名,传入的短信签名必须是在阿里大鱼“管理中心-短信签名管理”中的可用签名。如“活动验证”已在短信签名管理中通过审核,则可传入”活动验证“(传参时去掉引号)作为短信签名。短信效果示例:【活动验证】验证码123,您正在进行登录身份验证,打死不要告诉别人哦!。
$req->setSmsFreeSignName("活动验证");//短信模板变量,传参规则{"key":"value"},key的名字须和申请模板中的变量名一致,多个变量之间以逗号隔开。示例:针对模板“验证码${code},您正在进行${product}身份验证,打死不要告诉别人哦!”,传参时需传入{"code":"1234","product":"免费短信来了"}
$req->setSmsParam("{\"code\":\"1234\",\"product\":\"免费短信来了\"}");//短信接收号码。支持单个或多个手机号码,传入号码为11位手机号码,不能加0或+86。群发短信需传入多个号码,以英文逗号分隔,一次调用最多传入200个号码。示例:18600000000,13911111111,13322222222
$req->setRecNum("13800000000");//短信模板ID,传入的模板必须是在阿里大鱼“管理中心-短信模板管理”中的可用模板。示例:SMS_585014
$req->setSmsTemplateCode("SMS_585014");$resp = $c->execute($req);
$resp = obj2Arr($resp);
var_dump($resp);
if ($resp['result']['success']) {echo "发送成功!";
} else {echo $resp['msg'];
}
//将返回的对象装换成数组
function obj2Arr ($obj) {$_arr = is_object($obj) ? get_object_vars($obj) : $obj; foreach ($_arr AS $k => $v) {$val = (is_object($v) ? obj2Arr($v) : $v);$arr[$k] = $val;}return $arr;
}
测试成功,发送普通短信就到此结束
文本转语音通知
<?php
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');
error_reporting('ALL');
$c = new TopClient;
$c->appkey = '1111';
$c->secretKey = 'aaaaaaaaaaaaaaaaaaaaaaaaa';
$req = new AlibabaAliqinFcTtsNumSinglecallRequest;//文本转语音(TTS)模板变量,传参规则{"key":"value"},key的名字须和TTS模板中的变量名一致,多个变量之间以逗号隔开,示例:{"name":"xiaoming","code":"1234"}
$req->setTtsParam("{\"AckNum\":\"123456\"}");//被叫号码,支持国内手机号与固话号码,格式如下057188773344,13911112222,4001112222,95500
$req->setCalledNum("13700000000");//被叫号显,传入的显示号码必须是阿里大鱼“管理中心-号码管理”中申请或购买的号码
$req->setCalledShowNum("4001112222");//TTS模板ID,传入的模板必须是在阿里大鱼“管理中心-语音TTS模板管理”中的可用模板
$req->setTtsCode("TTS_10001");
$resp = $c->execute($req);
语音通知
<?php
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');
error_reporting('ALL');
$c = new TopClient;
$c->appkey = $appkey;
$c->secretKey = $secret;
$req = new AlibabaAliqinFcVoiceNumSinglecallRequest;//被叫号码,支持国内手机号与固话号码,格式如下057188773344,13911112222,4001112222,95500
$req->setCalledNum("13700000000");//被叫号显,传入的显示号码必须是阿里大鱼“管理中心-号码管理”中申请通过的号码
$req->setCalledShowNum("4001112222");//语音文件ID,传入的语音文件必须是在阿里大鱼“管理中心-语音文件管理”中的可用语音文件
$req->setVoiceCode("c2e99ebc-2d4c-4e78-8d2a-afbb06cf6216.wav");
$resp = $c->execute($req);
多方通话
<?php
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');
error_reporting('ALL');
$c = new TopClient;
$c->appkey = $appkey;
$c->secretKey = $secret;
$req = new AlibabaAliqinFcVoiceNumDoublecallRequest;//通话超时时长,如接通后到达120秒时,通话会因为超时自动挂断。若无需设置超时时长,可不传。
$req->setSessionTimeOut("120");//主叫号码,支持国内手机号与固话号码,格式如下057188773344,13911112222,4001112222,95500
$req->setCallerNum("13700000000");//主叫号码侧的号码显示,传入的显示号码必须是阿里大鱼“管理中心-号码管理”中申请通过的号码。显示号码格式如下057188773344,4001112222,95500
$req->setCallerShowNum("057188773344");//被叫号码,支持国内手机号与固话号码,格式如下057188773344,13911112222,4001112222,95500
$req->setCalledNum("13800000000");//被叫号码侧的号码显示,传入的显示号码可以是阿里大鱼“管理中心-号码管理”中申请通过的号码。显示号码格式如下057188773344,4001112222,95500。显示号码也可以为主叫号码。
$req->setCalledShowNum("057188773344");
$resp = $c->execute($req);