PayLoadion.Gcm 1.1.1

The implementation of PayLoadion for GCM - Google Cloud Messaging

Install-Package PayLoadion.Gcm -Version 1.1.1
dotnet add package PayLoadion.Gcm --version 1.1.1
<PackageReference Include="PayLoadion.Gcm" Version="1.1.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PayLoadion.Gcm --version 1.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

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 =).

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 =).

Release Notes

Fixed null checking in Dispose() methods

Version History

Version Downloads Last updated
1.1.1 142 1/5/2019
1.1.0 360 6/30/2017
1.0.1 655 5/2/2016
1.0.0 280 4/27/2016