andreshg112/aws-sns
最新稳定版本:v1.0.2
Composer 安装命令:
composer require andreshg112/aws-sns
包简介
Amazon SNS Notifications Channel for Laravel 6
README 文档
README
This package makes it easy to send notifications using Amazon SNS with Laravel 5.3.
Contents
Installation
Can to install with commands:
composer require lab123/aws-sns:dev-master
Or editing the composer.json file:
"require": {
"lab123/aws-sns": "dev-master"
}
You must install the service provider.
Laravel 5.x
configure in config/app.php:
'providers' => [
...
Lab123\AwsSns\AwsSnsServiceProvider::class,
]
Lumen 5.x
configure in bootstrap/app.php:
$app->register(\Lab123\AwsSns\AwsSnsLumenServiceProvider::class);
** Note: ** You go need make a wrapper Laravel Notification or use a package how Lumen Notification
Setting up the AwsSns service
Follow the Amazon Console generate the APIKEY and API SECRET, which is connecting both.
Create a new sns section inside config/services.php:
...
'sns' => [
'key' => env('SNS_KEY'),
'secret' => env('SNS_SECRET'),
'region' => env('SNS_REGION', 'us-east-1')
],
...
Next we need to add this keys to our Laravel environment. Edit file .env to config the keys:
...
SNS_KEY=YOUR_KEY
SNS_SECRET=YOUR_SECRET
SNS_REGION=YOUR_REGION
...
Default Configurations SMS (OPTIONAL)
You also can config defaults attributes for sending SMS running php artisan vendor:publish --provider="Lab123\AwsSns\AwsSnsServiceProvider" or creating file config/aws-sns.php:
return [
'sms' => [
'monthlySpendLimit' => env('SNS_SMS_MONTHLY_LIMIT'),
'deliveryStatusIAMRole' => env('SNS_SMS_DELIVERY_STATUS_IAM_ROLE'),
'deliveryStatusSuccessSamplingRate' => env('SNS_SMS_DELIVERY_STATUS'),
'defaultSenderID' => env('SNS_SMS_SENDER'),
'defaultSMSType' => env('SNS_SMS_TYPE'),
'usageReportS3Bucket' => env('SNS_SMS_REPORT_S3')
]
]
And now you can set your default configuration for SMS in .env
** Note: ** More information how they work the settings at http://docs.aws.amazon.com/en/sns/latest/api/API_SetSMSAttributes.html
Usage
Sending SMS
To send sms without the need to create a topic, leave the function via as follows:
// Notifications/Welcome.php
/**
* Get the notification channels.
*
* @param mixed $notifiable
* @return array|string
*/
public function via($notifiable)
{
return [
AwsSnsSmsChannel::class
];
}
Add function toAwsSnsSms() expected by class AwsSnsSmsChannel to send notification:
// Notifications/Welcome.php
/**
* Get the AWS SNS SMS Message representation of the notification.
*
* @param mixed $notifiable
* @return \Lab123\AwsSns\Messages\AwsSnsMessage
*/
public function toAwsSnsSms($notifiable)
{
return (new AwsSnsMessage())->message('Message Here')->phoneNumber('+5511999999999');
}
You also can ignore the ->phoneNumber() in your notification and use function routeNotificationForAwsSnsSms in your Model Notifiable:
// Models/User.php
/**
* Route notifications for the Aws SNS SMS channel.
*
* @return string
*/
public function routeNotificationForAwsSnsSms()
{
return $this->phone_number;
}
**Note.: ** The expected number use the standards-based international E.123
eg.: +5511999999999
Sending Topic
To send notification to a topic, leave the function via as follows:
// Notifications/Welcome.php
/**
* Get the notification channels.
*
* @param mixed $notifiable
* @return array|string
*/
public function via($notifiable)
{
return [
AwsSnsTopicChannel::class
];
}
Add function toAwsSnsTopic() expected by class AwsSnsTopicChannel to send notification:
// Notifications/Welcome.php
/**
* Get the AWS SNS Topic Message representation of the notification.
*
* @param mixed $notifiable
* @return \Lab123\AwsSns\Messages\AwsSnsMessage
*/
public function toAwsSnsTopic($notifiable)
{
return (new AwsSnsMessage())->message('Message Here')->topicArn('arn:aws:sns:us-east-1:000000000000:name-topic');
}
You also can ignore the ->topicArn() in your notification and use function routeNotificationForAwsSnsTopic in your Model Notifiable:
// Models/User.php
/**
* Route notifications for the Aws SNS Topic channel.
*
* @return string
*/
public function routeNotificationForAwsSnsTopic()
{
return $this->topicArn;
}
Available methods
topicArn($topicArn): Your Topic Arn from Amazon SNS;phoneNumber($phoneNumber): Phone number to send notification;message($message): Message to be sent;
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Security
If you discover any security related issues, please email jean.pierre@lab123.com.br instead of using the issue tracker.
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-09-25