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.Authenticator using the client_id and client_secret you 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_url you specified. If the user has granted your application permission, a code parameter will be given in the query string. If something went wrong an error parameter will be passed instead. See the authentication section of the Yammer API documentation for more information.
Assuming everything went well, you can use the Authenticator to exchange your code for 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_data method 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
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)
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)
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)
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.