Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
108 lines (80 sloc) 3.49 KB


Yet another Ruby interface to Prowl with command line utility


gem install prowly

Usage as a Gem

Sending a notification via prowly gem

Prowly.notify do |n| # :notify is an alias of :add n.apikey = “apikey” or n.apikeys = [“apikey_1”, “apikey_2”, “apikey_n”] n.priority = Prowly::Notification::Priority::MODERATE n.application = “Prowly” n.event = “Notification” n.description = “Your server is under attack!!!” n.url = “” end notification = => “apikey”, :application => “Prowly”, :description => “Testing…”) notification = => [“apikey_1”, “apikey_2”, “apikey_n”], :application => “Prowly”, :description => “Testing…”) result = Prowly.notify(notification)

Obtaining a user's API key with the prowly gem is a three step process:

  • provider gets a token with their provider key via the retrieve_token call

  • user approves the request at a special web URL (in their browser)

  • provider gets user's API key with their provider key and the token via retrieve_apikey

This is somewhat similar to the OAuth scheme.

# obtain a token first with your provider key first
provider_key = "2b33d3f3f8522aaed4b2fc44382f1519791db6a2"
token_result = Prowly.retrieve_token(provider_key)
if token_result.succeeded?
  # if the call succeeded, the user will need to approve the request in their browser
  puts "go to this #{token_result.url} to approve this request"
  puts "then press <ENTER> to continue "
  dummy = STDIN.gets

  apikey_result = Prowly.retrieve_apikey(options[:provider], token_result.token)

  if apikey_result.succeeded?
    puts "The user apikey is #{apikey_result.apikey}"

Usage in the command line

$prowly -h # help $prowly -k one_apikey -a “the application” -e “the event” -d “the description” -p NORMAL $prowly -k key_1,key_2,key_n -a “the application” -e “the event” Options: -k, –api-key APIKEY Prowl API Key -d, –description DESCRIPTION Description -e, –event EVENT Event -p, –priority PRIORITY VERY_LOW, MODERATE, NORMAL (default), HIGH, EMERGENCY -u, –url URL for redirect (v1.2 feature) -v, –version Print the version number and exit

If you only specify the apikey prowly will use the defaults:

:description => “I am testing Prowly, and it works!” :event => “Prowly notification” :application => “Prowly” :priority => NORMAL :url => nil

Handling the Prowl API response

ON SUCCESS result.status # => “success” result.code # => “200”

if result.succeeded? result.remaining # => “977” result.resetdate # => “1266272588” else result.message # => end ON ERROR result.status # => “error” result.code # => “401” <= This depends on the error code sent by the prowl API

if result.succeeded? result.remaining # => result.resetdate # => else result.message # => “Invalid API Key(s)” <= This depends on the message sent by the prowl API end

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don't break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

See LICENSE for details

Jump to Line
Something went wrong with that request. Please try again.