Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

c2dm sends push notifications to Android devices via google c2dm.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 .document
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Gemfile
Octocat-spinner-32 LICENSE.txt
Octocat-spinner-32 README.markdown
Octocat-spinner-32 Rakefile
Octocat-spinner-32 c2dm.gemspec
README.markdown

c2dm

c2dm sends push notifications to Android devices via Google Cloud Messaging (GCM).

Installation

$ gem install c2dm

Requirements

An Android device running 2.2 or newer, its registration token, and a GCM api key.

Usage

There are two ways to use c2dm.

Sending many individual notifications using a static method:

notifications = [
  {
    registration_id: "...1", 
    data: {
      some_message: "Some payload",
      a_value: 10
    },
    collapse_key: "foobar" #optional
},
  {
    registration_id: "...2", 
    data: {
      some_message: "Some other payload",
      a_value: 20
    }
  }
]

C2DM.api_key = "YourGCMApiKey" # This initializes all future instances of C2DM with "YourGCMApiKey"
C2DM.send_notifications(notifications)

Sending this way will not raise an error but send_notifications will return an array of hashes including the registration_id and the response. If GCM returns an error while C2DM is sending one of the notifications, the response in the hash of the appropriate notification will be an object of type C2DM::GCMError.

...or one at a time by creating an instance:

c2dm = C2DM.new("YourGCMApiKey")
data = {some_message: "Some payload", a_value: 10}
collapse_key = "optional_collapse_key"
c2dm.send_notification("aRegistrationId", data, collapse_key)

Sending using an instance of C2DM will raise a C2DM::GCMError error when sending fails.

Copyrights

  • Copyright (c) 2010-2012 Amro Mousa. See LICENSE.txt for details.

Thanks

Something went wrong with that request. Please try again.