php - 阿里云通信新的SDK总是报错误 无法 getProfile
本文介绍了php - 阿里云通信新的SDK总是报错误 无法 getProfile的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
使用阿里云通信新的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中是能够发送短信的,在框架中无法使用。
解决方案
我的加载方式直接就是将sdk放在了vendor中,利用框架的自动加载来完成即可。出现错误的原因和加载方式无关。
阿里云-云通信在帮助手册中给的demo代码是不能直接复制使用的,我就犯了这个问题。
比较帮助手册中给的demo代码和sdk中的demo代码会发现不同的地方在于:
sdk的demo中有一个加载区域节点配置
,而帮助手册中的demo是没有的。
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
use Aliyun\Api\Sms\Request\V20170525\QuerySendDetailsRequest;
// 加载区域结点配置
Config::load();
因此在我上面出错的代码中,最前面应当手动的加载区域节点配置
:
\Aliyun\Core\Config::load();
这篇关于php - 阿里云通信新的SDK总是报错误 无法 getProfile的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文