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.