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:

  1. 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)
    
  2. 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)
    
  3. 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
    

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)

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.

Table Of Contents

Previous topic

Welcome to Yampy

Next topic

API documentation

This Page