Quickstart guide¶
Authentication¶
The Yammer API requires you to authenticate via OAuth 2, so you’ll need a
client_id and client_secret which you will be given when you register
your application with Yammer here: http://www.yammer.com/client_applications
To authenticate your application:
Build a
yampy.Authenticatorusing theclient_idandclient_secretyou were given when you registered your application:import yampy authenticator = yampy.Authenticator(client_id=MY_CLIENT_ID, client_secret=MY_CLIENT_SECRET)
Send your user to the authorization URL where they can grant your application access to their Yammer account. You can construct the authorization URL using the
Authenticator, specifying the URL you want Yammer to return the user to when they are finished:redirect_uri = "http://example.com/auth/callback" auth_url = authenticator.authorization_url(redirect_uri=redirect_uri)
Once the user has authorized or denied your application, they will be sent to the
redirect_urlyou specified. If the user has granted your application permission, acodeparameter will be given in the query string. If something went wrong anerrorparameter will be passed instead. See the authentication section of the Yammer API documentation for more information.Assuming everything went well, you can use the
Authenticatorto exchange yourcodefor an access token:access_token = authenticator.fetch_access_token(code)
If you require user and network information – for example, if you want to store the Yammer user ID in your application’s user model – then you can use the
fetch_access_datamethod instead:access_data = authenticator.fetch_access_data(code) access_token = access_data.access_token.token user_info = access_data.user network_info = access_data.network
Making requests¶
Once you have an access token you can create a yampy.Yammer instance
and start making requests to the API:
import yampy
yammer = yampy.Yammer(access_token=access_token)
Messages¶
You can make message-related requests using the messages
property on your Yammer instance. These are just a few examples, see the
yampy.apis.MessagesAPI class for details:
import yampy
yammer = yampy.Yammer(access_token=access_token)
# Get a list of messages
yammer.messages.all()
yammer.messages.from_my_feed()
yammer.messages.from_user(a_user)
# Post a new messages
yammer.messages.create("Hello developers", group_id=developers_group_id,
topics=["Python", "API", "Yammer"])
# Delete a message
yammer.messages.delete(a_message)
# Like messages
yammer.messages.like(a_message)
yammer.messages.unlike(a_message)
Users¶
You can make user-related requests using the users
property on your Yammer instance. These are just a few examples, see the
yampy.apis.UsersAPI class for details:
import yampy
yammer = yampy.Yammer(access_token=access_token)
# Get a list of users
yammer.users.all()
yammer.users.in_group(a_group_id)
# Find a specific user
yammer.users.find(a_user_id)
yammer.users.find_by_email("user@example.com")
# Find the logged in user
yammer.users.find_current()
# Create a new user
yammer.users.create("user@example.org", full_name="John Doe")
# Update a user
yammer.users.update(a_user, summary="An example user")
# Suspend and delete users
yammer.users.suspend(a_user)
yammer.users.delete(a_user)
Groups¶
You can make group-related requests using the ``groups`
property on your Yammer instance. These are just a few examples, see the
yampy.apis.GroupsAPI class for details:
import yampy
yammer = yampy.Yammer(access_token=access_token)
# Get a list of all groups in your network
yammer.groups.all()
# Get a list of all groups of current user
yammer.groups.all(mine=True)
# View a specific group
yammer.groups.find(a_group_id)
# Get members of specific group
yammer.groups.members(a_group_id)
# Join a specific group
yammer.groups.join(a_group_id)
# Leave a specific group
yammer.groups.leave(a_group_id)
# Create a new group
yammer.groups.create("My new group", private=True)
# delete a group
yammer.groups.delete(a_group_id)
Other API endpoints¶
For other endpoints in the Yammer REST API, you will need to use Yampy’s HTTP
API. Use the client property on your Yammer instance.
For example, to get a list of org chart relationships you would make this HTTP request:
GET https://www.yammer.com/api/v1/relationships.json?access_token=...
You can do this easily with the Yampy client:
yammer = yampy.Yammer(access_token)
yammer.client.get("/relationships")
See the REST API documentation for a
full list of API endpoints, and the yampy.client.Client class for details of
the Python interface.