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

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.1.1 288 1/5/2019
1.1.0 532 6/30/2017
1.0.1 831 5/2/2016
1.0.0 430 4/27/2016