php使用aws的sns服务初探(主要是短信服务)

1.引入aws-sdk-php
使用composer安装:aws/aws-sdk-php
2.使用SnsClient类,生成sns服务对象
$snsClient = new SnsClient([
    'region'      => 'ap-southeast-1',//这是亚马逊在新加坡的服务器,具体要根据情况决定
    'credentials' => [
        'key'         => '需要登陆aws的控制台查看',
        'secret'      => '需要登陆aws的控制台查看',
    ],
    'version'     => '2010-03-31',    //一般在aws的官方api中会有关于这个插件的版本信息
    'debug'       => false,
]);
region:区域信息
credentials : 证书
version:版本
debug:是否是debug
3.向指定的topic订阅者(群发)发送短信
$topic = $client->createTopic([
    'Name' => 'abc'             //自定义
]);                             //如果已经存在一个同名的topic,则不会重新创建

//*** 设置topic显示值,第一次设置或如果topic设置在console中设置了就不用写这个了
 $client->setTopicAttributes([
    'AttributeName'  => 'DisplayName',                  //可以自定义
    'AttributeValue' => 'My SNS Topic Display Name',    //可以自定义
    'TopicArn'       => $topic中的值                     //'arn:aws:sns:ap-southeast-1:...:abc', // REQUIRED
 ]);

// 往topic中添加订阅者
$client->subscribe([
    'Endpoint' => '+86...........',     //手机号或email(注意,如果是手机号,需要转换为E.164国际标准,可以考虑使用google维护的一个开源库: giggsey/libphonenumber-for-php,在github上可以找到,也可以使用composer安装)
    'Protocol' => 'sms',                //enum值,有sms、email等值
    'TopicArn' => $topic中的值           //'arn:aws:sns:ap-southeast-1:...:abc'
]);
$args = [
    'Message' => 'Hello, world!',           // REQUIRED
    'TopicArn' =>  $topic中的值              //'arn:aws:sns:ap-southeast-1:...:abc',
 ];
$client->Publish($args);
4.向指定的PhoneNumber发送短信
这个功能需要检查你的php-sdk的版本,如果>3.0就可以使用,如果<3.0,则不能使用下列方式向指定phoneNumber发送
$args = [
    'Message' => 'Hello, world!',           // REQUIRED
    'PhoneNumber' => '+86....',
 ];
$client->Publish($args);
代码示例:

类文档 : http://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html
参考示例 : https://github.com/chrisbarr/AmazonSNS-PHP-API
https://stackoverflow.com/questions/38752336/sending-sms-with-amazon-aws-services-php

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值