使用阿里云通信新的SDK,将SDK集成到composer中进行安装的。
类的加载都没有任何的问题,能够正确使用,但是在继续到下面的时候出现了错误:
//初始化访问的acsCleint
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
DefaultProfile::addEndpoint("cn-hangzhou","cn-hangzhou", $product, $domain);
报错信息是:
我输出了一下,其中 self::$endpoints 的值是 null。
我的函数的完整代码如下:
public function smsNew($data=[]){
//此处需要替换成自己的AK信息
$accessKeyId = Config::get('alidayu.appkey');
$accessKeySecret = Config::get('alidayu.secretKey');
//短信API产品名(短信产品名固定,无需修改)
$product = "Dysmsapi";
//短信API产品域名(接口地址固定,无需修改)
$domain = "dysmsapi.aliyuncs.com";
//暂时不支持多Region(目前仅支持cn-hangzhou请勿修改)
$region = "cn-hangzhou";
//初始化访问的acsCleint
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
DefaultProfile::addEndpoint("cn-hangzhou","cn-hangzhou", $product, $domain);
$acsClient= new DefaultAcsClient($profile);
$request = new SendSmsRequest();
$request->setPhoneNumbers($data['mobile']);
//必填-短信签名
$request->setSignName(Config::get('alidayu.FreeSignName'));
//必填-短信模板Code
$request->setTemplateCode($data['template']);
//选填-假如模板中存在变量需要替换则为必填(JSON格式)
$request->setTemplateParam(json_encode($data['param']));
//选填-发送短信流水号
// $request->setOutId("1234");
//发起访问请求
$acsResponse = $acsClient->getAcsResponse($request);
dump($acsResponse);
return $acsResponse;
}
我的accesskey 和 secretKey 是在 Access Key管理 处生成的,可用。
=============================
刚才测试一下,在demo中是能够发送短信的,在框架中无法使用。
阿里云-云通信在帮助手册中给的demo代码是不能直接复制使用的,我就犯了这个问题。
比较帮助手册中给的demo代码和sdk中的demo代码会发现不同的地方在于:
sdk的demo中有一个
加载区域节点配置
,而帮助手册中的demo是没有的。因此在我上面出错的代码中,最前面应当手动的
加载区域节点配置
: