PayLoadion.Gcm
1.1.1
dotnet add package PayLoadion.Gcm --version 1.1.1
NuGet\Install-Package PayLoadion.Gcm -Version 1.1.1
<PackageReference Include="PayLoadion.Gcm" Version="1.1.1" />
paket add PayLoadion.Gcm --version 1.1.1
#r "nuget: PayLoadion.Gcm, 1.1.1"
// Install PayLoadion.Gcm as a Cake Addin #addin nuget:?package=PayLoadion.Gcm&version=1.1.1 // Install PayLoadion.Gcm as a Cake Tool #tool nuget:?package=PayLoadion.Gcm&version=1.1.1
PayLoadion.Gcm
<img src="https://github.com/vinguan/payloadion/blob/master/ProjectsIcons/PayLoadion.Gcm/payloadion_google.png?raw=true" width="200">
Implementation of PayLoadion for Google Cloud Messaging(GCM), following Notification payload Support. PayLoadion.Gcm comes with a plus that is a builder for Downstream HTTP messages #Nuget
Install-Package PayLoadion.Gcm
Getting Started
Creating the PayloadBuilder
var gcmPayLoadBuilder = GcmPayLoadBuilderFactory.CreateGcmPayLoadBuilder();
##Building a simple Apns's Payload
###PayLoad built to object
var gcmPayLoad = GcmPayLoadBuilderFactory.CreateGcmPayLoadBuilder()
.Notification()
.Title("Hello Payloadion.GCM")
.Icon("DefaultIcon")
.AddCustomData("NewsId", 11)
.BuildPayLoad();
###PayLoad built and serialized to string
var gcmPayLoadString = GcmPayLoadBuilderFactory.CreateGcmPayLoadBuilder()
.Notification()
.Title("Hello Payloadion.GCM")
.Icon("DefaultIcon")
.AddCustomData("NewsId", 11)
.BuildPayLoadToString(true);
It should produce this Payload :
{
"notification": {
"title": "Hello Payloadion.GCM",
"icon": "DefaultIcon"
},
"data": {
"NewsId": 11
}
}
More cenarios
Only with custom data
var gcmPayLoadString = GcmPayLoadBuilderFactory.CreateGcmPayLoadBuilder()
.AddCustomData("NewsId", 11)
.BuildPayLoadToString(true);
It should produce this Payload :
{
"notification": {},
"data": {
"NewsId": 11
}
}
With Notification, Custom Data and others arguments
var gcmPayLoadString = GcmPayLoadBuilderFactory.CreateGcmPayLoadBuilder()
.Notification()
.Title("Hello Payloadion.GCM")
.Icon("DefaultIcon")
.Body("Hello Payloadion.GCM Body")
.BodyLocalizableKey("BodyLocKey")
.AddBodyLocalizableArgument("2")
.TitleLocalizableKey("TitleLocKey")
.AddTitleLocalizableArgument("1")
.AddCustomData("NewsId", 11)
.BuildPayLoadToString(true);
It should produce this Payload :
{
"notification": {
"title": "Hello Payloadion.GCM",
"body": "Hello Payloadion.GCM Body",
"icon": "DefaultIcon",
"body_loc_key": "BodyLocKey",
"body_loc_args": [
"2"
],
"title_loc_key": "TitleLocKey",
"title_loc_args": [
"1"
]
},
"data": {
"NewsId": 11
}
}
#Downstream HTTP messages
Getting Started
Creating the DownStream HttpMessage Builder
var gcmDownStreamHttpMessageBuilder = GcmDownStreamHttpMessageBuilderFactory.CreateGcmDownStreamHttpMessageBuilder();
Building a simple message
var gcmDownStreamHttpMessage = GcmDownStreamHttpMessageBuilderFactory.CreateGcmDownStreamHttpMessageBuilder()
.ToDevice("123")
.Priority(GcmPriorityEnum.Normal)
.TimeToLiveUntil(DateTimeOffset.Now.AddMonths(1))
.IsDryRun(true)
.PayLoad()
.Notification()
.Title("Hello Payloadion.GCM")
.Icon("DefaultIcon")
.AddCustomData("NewsId", 11)
.BuildGcmDownStreamHttpMessageToJson(true);
It should produce this message :
{
"to": "123",
"priority": "normal",
"time_to_live": 2678400,
"dry_run": true,
"notification": {
"title": "Hello Payloadion.GCM",
"icon": "DefaultIcon"
},
"data": {
"NewsId": 11
}
}
##Sending to multiple targets the same message
var gcmDownStreamHttpMessage = GcmDownStreamHttpMessageBuilderFactory.CreateGcmDownStreamHttpMessageBuilder()
.AddDeviceId("GcmDeviceUniqueId1")
.AddDeviceId("GcmDeviceUniqueId2")
.AddDeviceId("GcmDeviceUniqueId3")
.Priority(GcmPriorityEnum.Normal)
.TimeToLiveUntil(DateTimeOffset.Now.AddMonths(1))
.IsDryRun(true)
.PayLoad()
.Notification()
.Title("Hello Payloadion.GCM")
.Icon("DefaultIcon")
.AddCustomData("NewsId", 11)
.BuildGcmDownStreamHttpMessageToJson(true);
It should produce this message :
{
"registration_ids": [
"GcmDeviceUniqueId1",
"GcmDeviceUniqueId2",
"GcmDeviceUniqueId3"
],
"priority": "normal",
"time_to_live": 2678400,
"dry_run": true,
"notification": {
"title": "Hello Payloadion.GCM",
"icon": "DefaultIcon"
},
"data": {
"NewsId": 11
}
}
Author
Vinicius Gualberto @Vinguan.
Contribute
Fork me and send the pull requests =).
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 | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard1.0 is compatible. netstandard1.1 was computed. netstandard1.2 was computed. netstandard1.3 was computed. netstandard1.4 was computed. netstandard1.5 was computed. netstandard1.6 was computed. netstandard2.0 was computed. netstandard2.1 was computed. |
.NET Framework | net45 was computed. net451 was computed. net452 was computed. net46 was computed. 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 | tizen30 was computed. tizen40 was computed. tizen60 was computed. |
Universal Windows Platform | uap was computed. uap10.0 was computed. |
Windows Phone | wp8 was computed. wp81 was computed. wpa81 was computed. |
Windows Store | netcore was computed. netcore45 was computed. netcore451 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 1.0
- NETStandard.Library (>= 1.6.1)
- Newtonsoft.Json (>= 10.0.3)
- PayLoadion (>= 1.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Fixed null checking in Dispose() methods