NotificationServices 1.0.3
See the version list below for details.
dotnet add package NotificationServices --version 1.0.3
NuGet\Install-Package NotificationServices -Version 1.0.3
<PackageReference Include="NotificationServices" Version="1.0.3" />
paket add NotificationServices --version 1.0.3
#r "nuget: NotificationServices, 1.0.3"
// Install NotificationServices as a Cake Addin #addin nuget:?package=NotificationServices&version=1.0.3 // Install NotificationServices as a Cake Tool #tool nuget:?package=NotificationServices&version=1.0.3
v1.0.3: Breaking Change: Renamed GetAWPushNotificationSender to GetAWSPushNotificationSender
The current version supports sending out sms, emails and push notifications via AWS services. It supports this via a Basic AWS authentication method. You can also send PushNotification via FCM by just setting the Firebase server key.
Configuration
To start with setting the credentials use the Configuration class:
AWS
Congifuration.Instance.AWSAccessKey = "<your access key>";
Congifuration.Instance.AWSSecretKey = "<your secret key>";
Congifuration.Instance.AWSFCMPNSARN = "<your arn for fcm>";
Congifuration.Instance.AWSIOSPNSARN = "<your arn for ios>";
Congifuration.Instance.AWSRegionEndPoint = "<your region endpoint>";
Firebase Push notifications
Congifuration.Instance.FirebaseServerKey = "<your firebase server key>";
Email
To send out emails get an instance of IEmailSender via EmailSenderFactory. You can then send the email by calling SendAWSEmailAsync. It expects 4 parameters.
- Source: The source/sender of the email. This needs to be verified in the Simple Email Service
- ToEmail: The recipient of the email
- TemplateName: The name of the template to use. You can create templates from cli and can learn more from here. https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html
- TemplateData: The data to substitute in the Template. See the above link to see how to pass the data.
var EmailSender = EmailSenderFactory.GetAWSEmailSender();
EmailSender.SendAWSEmailAsync("noreply@services.com", "recipient@services.com", "ConfirmEmailTemplate", $"{{ "Link":"{EmailCallbackUrl}", "Name": "{FirstName}" }}");
SMS
To send out sms get an instance of ISMSSender via SMSSenderFactory. You can then send the email by calling SendSmsAsync. It expects 4 parameters.
- number: The recipient number to which the sms needs to be sent.
- message: Text Message to be sent.
- SenderId: This is an optional parameter whose default value is "Notif". The sender id to be displayed when the sms is received.
- SMSType: This is an optional parameter whose default value is "Transactional". The type of sms either it is "Promotional" or "Transactional".
var SMSSender = SMSSenderFactory.GetAWSSMSSender();
SMSSender.SendSmsAsync("<your number with country code", "Hello World");
Push Notifications
To send out push notifications get an instance of IPushNotificationSender via PushNotificationSenderFactory.
FCM
You can then send the push notification by calling SendFirebasePushNotification for Firebase. It expects 4 parameters.
- deviceTokens: An array of fcm device tokens to which the notifications need to be sent.
- title: The title of the push notification
- body: The body of the notification.
- data: A custom object to send in the push notifcation
var PushNotificationSender = PushNotificationSenderFactory.GetFirebasePushNotificationSender();
PushNotificationSender.SendFirebasePushNotification(["<your device token>"], "Hello Title", "Hello Body", new {Id = "<some id>"});
AWS
Before sending out a push notification via AWS a topic needs to be created for each user using CreateAWSEndpointAsync. It takes 3 parameters:
- topic: You can pass your user id here. The function will create a topic with this name in AWS.
- token: The device token which is retrieved from ios & Android installations. For iOS it will be a hexadecimal string.
- platform: Either iOS or Android. If 'iOS' an endpoint will be created in AWSIOSPNSARN. For Android an endpoint will be created in AWSFCMPNSARN
var PushNotificationSender = PushNotificationSenderFactory.GetAWSPushNotificationSender();
PushNotificationSender.CreateAWSEndpointAsync("<topic name>","<your device token>", "<platform>");
CreateAWSEndpointAsync will create a Topic with the given 'topic', Create an endpoint in the given 'platform' with the given 'token'. Internally it will also create a subscription in the topic with the newly created endpoint. The reason is explained later on. CreateAWSEndpointAsync returns a PushNotificationResponseDto which return the ARN's for Topic, Subscription & Endpoint.
You will be able to then send a push notification to a particular topic using SendAWSPushNotificationAsync. It takes 2 parameters
- TopicArn: An array of fcm device tokens to which the notifications need to be sent.
- Payload: The payload is of type SNS. The payload will be converted to a json format: { "APNS": "{"aps":{"alert": "Check out these awesome deals!","url":"www.amazon.com"} }", "APNS_SANDBOX": "{"aps":{"alert": "Check out these awesome deals!","url":"www.amazon.com"} }", "FCM": "{"data":{"message":"Check out these awesome deals!","url":"www.amazon.com"}}", }
PushNotificationSender.SendAWSPushNotificationAsync("<topic arn>", <payload>);
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- AWSSDK.Core (>= 3.3.103.35)
- AWSSDK.SimpleEmail (>= 3.3.101.41)
- AWSSDK.SimpleNotificationService (>= 3.3.101.60)
- Newtonsoft.Json (>= 12.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.