您的位置:首页 > 编程语言 > PHP开发

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

2017-08-12 23:33 218 查看

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'     => '2006-03-01',    //一般在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发送

$topic = $client->createTopic([
'Name' => 'abc'             //自定义
]);                             //如果已经存在一个同名的topic,则不会重新创建
$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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sns php 短信 aws 亚马逊