Flowdock
Ruby Gem for using the Flowdock Push API. See Push API documentation for details.
Build Status
flowdock gem is tested on Ruby 1.9.3 and JRuby.
Dependencies
- HTTParty
- MultiJson
Installing
gem install flowdock
If you're using JRuby, you'll also need to install jruby-openssl gem.
Usage
To post content to Chat or Team Inbox using Flowdock::Flow
, you need to use the target flow's API token.
Alternatively you can use your personal api token and the Flowdock::Client
.
All tokens can be found in tokens page.
REST API
To create an api client you need your personal api token:
require 'rubygems'
require 'flowdock'
# Create a client that uses you api token to authenticate
client = Flowdock::Client.new(api_token: '__MY_PERSONAL_API_TOKEN__')
Posting to Chat
To send a chat message or comment, you can use the client.chat_message:
flow_id = 'acdcabbacd0123456789'
# Send a simple chat message
client.(flow: flow_id, content: "I'm sending a message!", tags: ['foo', 'bar'])
# Send a comment to message 1234
client.(flow: flow_id, content: "Now I'm commenting!", message: 1234)
Both methods return the created message as a hash.
Arbitary api access
You can use the client to access api in other ways too. See REST API documentation for all the resources.
# Fetch all my flows
flows = client.get('/flows')
# Update a flow's name
client.put('/flows/acme/my_flow', name: 'Your flow')
# Delete a message
client.delete('/flows/acme/my_flow/messages/12345')
# Create an invitation
client.post('/flows/acme/my_flow/invitations', email: '[email protected]', message: "I'm inviting you to our flow using api.")
Push api
To use the push api, you need a flow token:
Posting to Chat
require 'rubygems'
require 'flowdock'
# create a new Flow object with target flow's api token and external user name (enough for posting to Chat)
flow = Flowdock::Flow.new(:api_token => "__FLOW_TOKEN__", :external_user_name => "John")
# send message to Chat
flow.push_to_chat(:content => "Hello!", :tags => ["cool", "stuff"])
Posting to Team Inbox
# create a new Flow object with target flow's api token and sender information for Team Inbox posting
flow = Flowdock::Flow.new(:api_token => "__FLOW_TOKEN__",
:source => "myapp", :from => {:name => "John Doe", :address => "[email protected]"})
# send message to Team Inbox
flow.push_to_team_inbox(:subject => "Greetings from Flowdock API Gem!",
:content => "<h2>It works!</h2><p>Now you can start developing your awesome application for Flowdock.</p>",
:tags => ["cool", "stuff"], :link => "http://www.flowdock.com/")
Posting to multiple flows
require 'rubygems'
require 'flowdock'
# create a new Flow object with the api tokens of the target flows
flow = Flowdock::Flow.new(:api_token => ["__FLOW_TOKEN__", "__ANOTHER_FLOW_TOKEN__"], ... )
# see above examples of posting to Chat or Team Inbox
API methods
Flowdock::Flow
methods
push_to_team_inbox
- Send message to Team Inbox. See API documentation for details.
push_to_chat
- Send message to Chat. See API documentation for details.
send_message(params)
- Deprecated. Please use push_to_team_inbox
instead.
Flowdock::Client
methods
chat_message
- Send message to Chat.
post
, get
, put
, delete
- Send arbitary api calls. First parameter is the path, second is data. See REST API documentation.
Deployment notifications
There are separate gems for deployment notifications:
Copyright
Copyright (c) 2012 Flowdock Ltd. See LICENSE for further details.