aws sns服务支持订阅邮件或者短信通知,同时支持app的推送通知。由于我们这边是做web端系统的,所以决定启用短信通知,优势在于全球通用。具体使用方法如下:
一、配置授权环境
1、在aws的后台创建iam角色,授权使用sns服务,获得该角色的AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY;
2、安装aws cli环境在windows或者linux下;
ubuntu安装方式很简单,两个命令搞定:
#sudo apt install awscli
#aws --version
windows建议使用python的pip命令安装,所以需要先安装python,然后在pip安装aws cli;
C:\Users\Administrator>
python --version
C:\Users\Administrator>
pip install awscli
C:\Users\Administrator>
aws --version
3、在安装成功的环境配置aws授权iam,具体命令为,linux和windows一样的配置命令,然后windows需要在当前用户的目录下才能够默认调用成功;
aws configure
PS:调用sdk授权的方法不仅这一种,还有其他方式,具体的可以参考下面的链接:
4、下载aws php sdk,并引用;
composer require aws/aws-sdk-php
github上有使用实例,地址为https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/php/example_code
5、引入sdk,并调用接口,代码如下:
use Aws\Sns\SnsClient;
use Aws\Exception\AwsException;
$SnSclient = new SnsClient([
'profile' => 'default',
'region' => 'us-east-1',
'version' => '2010-03-31'
]);
$message = 'This message is sent from a Amazon SNS code sample.';
$phone = '+1XXX5550100';
try {
$result = $SnSclient->publish([
'Message' => $message,
'PhoneNumber' => $phone,
]);
var_dump($result);
} catch (AwsException $e) {
// output error message if fails
error_log($e->getMessage());
}
最后在说一下,手机号码的格式要遵循 E.164 格式,遵循此格式的电话号码最多可包含 15 位,并以加号 (+) 和国家/地区代码作为前缀。例如,E.164 格式的美国电话号码将显示为 +1XXX5550100。
更多详细的说明,参数请查看官方文档,地址为:https://docs.aws.amazon.com/zh_cn/sns/latest/dg/sms_publish-to-phone.html