ruby-notify-my-android

Send notifications to Android devices via the Notify My Android API. Details about the API are available at www.notifymyandroid.com/api.php.

Test Status

Installation

gem install ruby-notify-my-android

Usage from command line

You can send notifications from the command line with the notify-my-android script:

$ notify-my-android -k 9d0538ab7b52360e906e0e766f34501b69edde92fe3409e9
Notification sent !

Here are the full set of parameters that it accepts:

Usage: notify-my-android [options]
    -k, --apikey APIKEY              Your API Key
    -p, --priority PRIORITY          Priority (-2,-1,0,1,2)
    -a, --application APPNAME        Name of app
    -e, --event EVENTNAME            Name of event
    -d, --description DESCRIPTION     Notify text

Any parameters unset will use default values except –apikey

Usage as a Gem

Sending a notification via ruby-notify-my-android gem

require 'rubygems'
require 'ruby-notify-my-android'

NMA.notify do |n| 
  n.apikey = "9d1538ab7b52360e906e0e766f34501b69edde92fe3409e9" # can also be list such as ["key1", "key2"]
  n.priority = NMA::Priority::MODERATE
  n.application = "NMA"
  n.event = "Notification"
  n.description = "Your server is under attack!!!"
end

Using the API

There are only a few commands that are available:

The standard API response for a successful call is as follows:

#<NMA::Response:0x1059682b8
 @body={"success"=>[{"resettimer"=>"59", "code"=>"200", "remaining"=>"798"}]},
 @code="200",
 @raw=
  "<?xml version=\"1.0\" encoding=\"UTF-8\"?><nma><success code=\"200\" remaining=\"798\" resettimer=\"59\" /></nma>\r\n",
 @response={"resettimer"=>"59", "code"=>"200", "remaining"=>"798"}>

The standard API response for a unsuccessful call is as follows:

@body=
  {"error"=>
    [{"code"=>"400", "content"=>"Parameter 'apikey' length is invalid."}]},
 @code="200",
 @raw=
  "<?xml version=\"1.0\" encoding=\"UTF-8\"?><nma><error code=\"400\" >Parameter 'apikey' length is invalid.</error></nma>\r\n",
 @response={"code"=>"400", "content"=>"Parameter 'apikey' length is invalid."}>

Note that the @code signifies the success or failure of the HTTP call, not the NMA call. Use the @response for that determination.

Contributing to ruby-notify-my-android

Written by Ken Pepple

Based on Prowly gem (github.com/rafmagana/prowly) by Rafael Magana

See LICENSE.txt for further details.