chatter

('The minimalist yet fully featured Chatter API class, heavily inspired by Python Twitter Tools.',)


Keywords
chatter, api, salesforce
License
MIT
Install
pip install chatter==0.1.3

Documentation

Python Chatter Client

The minimalist yet fully featured Chatter API class, heavily inspired by Python Twitter Tools.

## Installation

Simply:

$ easy_install chatter

Even better:

$ pip install chatter

Chatter API overview

See this quickstart tutorial from Salesforce.

## Usage

Instantiation:

client_id = "YOUR_CHATTER_CLIENT_ID"
client_secret = "YOUR_CHATTER_CLIENT_SECRET"
auth = chatter.ChatterAuth(client_id, client_secret)

instance_url = "YOUR_USER_INSTANCE_URL"
access_token = "YOUR_USER_ACCESS_TOKEN"
refresh_token = "YOUR_USER_REFRESH_TOKEN"

chatter = chatter.Chatter(auth=auth, instance_url=instance_url, 
                          access_token=access_token, refresh_token=refresh_token)

Get authenticated user's details:

me = chatter.users.me.get()

Note 'GET' is implied, so you can reduce the above to:

me = chatter.users.me()

Get another user's details

other_user = chatter.users["005E0000000FpoxIAC"].get()

Again, this can be reduced:

other_user = chatter.users["005E0000000FpoxIAC"]()

Another way to achieve this, using the '_' magic method:

other_user = chatter.users._("005E0000000FpoxIAC").get()

Updating the authenticated user's Chatter status:

chatter.feeds.news.me.feed_items.post(text="Hello world!")

Occassionally it is necessary to refresh the user's access token, due to session expiration. The underlying ChatterCall class will handle this automatically, however you may wish to be notified of access token changes so you can reflect this in your user model.

It's possible to do this via the access_token_refreshed_callback, pass in a callable, and your callback will get called with the refreshed access token.

e.g.

def my_callback(access_token):
    print "New access_token", access_token
chatter = chatter.Chatter(auth=auth, instance_url=instance_url, 
                          access_token=access_token, refresh_token=refresh_token,
                          access_token_refreshed_callback=my_callback)

The rest is hopefully self-explanatory! :)

Feedback

Send feedback / questions etc. to:

  • Email: steve.winton[at]nixonmcinnes.co.uk.
  • Twitter: @steveWINton.