4. Why Yammer is unique
• Enterprise Social
• Best-in-class enterprise social networking service
• Rapid innovation
• Delivering improved features via an agile development
methodology
• Unique adoption model
• Viral model that appeals directly to end users
8. What is a Yammer Embed?
• Yammer Embed is a JavaScript-based widget that harnesses
the power of your enterprise social platform by making
Yammer available to users where they work online.
• It provides a way to display content from Yammer in your
own HTML-based app.
9. How does it work?
www.sharepointeurope.com
1. It has a reference to the
yam.js script file.
2. It has the initialization script for
your instance of Embed with
a static configuration.
3. It has a div tag for placement
of the feed on your page.
9
</>
*.JS
10. Feed Description FeedType Use Case
My Feed My Feeds are where conversations are
delivered for Yammer users.
See My Feed
example
My Site homepage or workspace site.
User Feed All the conversations posted by a specific
user in Yammer.
User Profile pages for users in a system
directory.
Topic Feed A feed of conversations that have been
tagged with a topic in Yammer.
Topic An event page on an intranet.
Group Feed A feed of conversations that have been
posted in a specified group.
Group A team page on an intranet.
Comment Feed Uses Yammer’s Open Graph API to
facilitate conversation around an
application object.
Click here for
more
information
An opportunity in a custom CRM
application, or a media detail page in a
digital asset management system.
Yammer Feed Types
10
11. When to Use Yammer Embeds
The situations below outline when you should use a
Yammer Embed and when you might want to utilize
other options for Yammer integration:
11
Use a Yammer Embed When:
• You have an HTML-based application such
as a portal, intranet, or business
application.
• You can use it in SharePoint, but Yammer
has packaged integrations available for this
platform that may be more appropriate for
your needs.
Don’t Use a Yammer Embed If:
• You need a custom publisher.
• You need to handle very specific
business requirements.
These situations are better handled better by
our REST API or Application Integration.
15. OAuth 2.0
OAuth 2.0 focuses on
client developer simplicity
while providing specific
authorization flows for
web applications, desktop
applications, mobile
phones, and living room
devices.
16. Authentication Flow
1. User authentication - ensures that the user is
who they say they are.
2. App authorization - ensures that the user knows
that they are allowing your app to access their
data.
3. App authentication - ensures that the user is
giving their information to your app and not
someone else’s.
www.sharepointeurope.com
18. 2. App Authorization
Once Yammer has successfully authenticated the user, the
OAuth dialog will prompt them to authorize the app. If the
user clicks “Allow”, your app will be authorized. The OAuth
dialog will redirect the user’s browser via HTTP 302 to the
redirect_uri with an authorization code:
www.sharepointeurope.com
http://[:redirect_uri]?code=[:code]
19. 3a. App Authentication
Next, submit a GET on the OAuth Token Endpoint,
passing in the authorization code you got above and your
app secret which is available in the app that you
registered. The endpoint is:
www.sharepointeurope.com
https://www.yammer.com/oauth2/access_token.json?
client_id=[:client_id]&client_secret=[:client_secret]
&code=[:code]
20. 3b. App Authentication
Yammer will return an access token object as part of the
response, which includes user profile information. From this
object, parse out and store the “token” property. This token is
long lived (years) and will be used to make subsequent API
calls to Yammer.
www.sharepointeurope.com
21. Demo
• Create First Yammer App
• Create Test Token
• .NET MVC Client
www.sharepointeurope.com
23. The Open
Graph Protocol
The Open Graph protocol
enables any web page to
become a rich object in a
social graph. For instance,
this is used on Facebook
to allow any web page to
have the same
functionality as any other
object on Facebook.
www.sharepointeurope.com
25. The Open Graph protocol models Actor (User) activities
based on Actions and Objects.
Jimmy shared a file from
SharePoint.
Sam voted up an idea in Spigit.
Michelle updated a record in
Dynamics.
Arisa closed a ticket in Zendesk.
Yammer Open Graph API
26. The Open Graph Schema
27
Supported object types:
• page (default)
• place
• person
• department
• team
• project
• folder
• file
• document
• image
• audio
• video
• company
Supported actions:
• create
• update
• delete
• follow
• like
If the above actions or objects are not sufficient, you can even create custom actions to better
suit your needs.
31. Summary
Open Graph REST API Embed
Approach
(presentation, integration, both)
Both Both Presentation
Direction
(inbound, outbound, both)
Inbound Both Outbound
Authentication Method(s) oAuth2 oAuth2 oAuth2
Skills Required HTTP/REST/oAuth/Open
Graph
HTTP/REST/oAuth HTML
Level of Effort High Medium Low
Typical Use Cases Pushing activity stories
from Applications to
Yammer
Posting messages to
Yammer from your
application
Bring conversations from
Groups into a web
page/application
Key Considerations Don’t flood the activity
stream with robotic
messages
Make sure authentication
is enabled using oAuth
Use embed for newsfeeds
instead of the API
Don’t have more than one
embed on a particular
page
32. Resources
• Yammer Success Center
• Out-of-the-box Integrations, Road map,
Social Journey
• Yammer Developer Network
• API, Open Graph, Development Resources
• Yammer Technical Sales
• Technical Sales enablement group
• Yammer Developer Network
• External Network for developers from
Microsoft and customers
• Sched.do
• Full GitHub repository of the source code
• Yammer API Developer
• Test drive Yammer’s API from a user friendly
portal
• Yammer Embed Widget Configurator
• Paste ‘n play custom embed code
• Yammer and SharePoint using .NET
• Attend Steve and Cam’s Academy Live
session to learn about integrating Yammer
and SharePoint using .NET
• Yammer Simple API (.NET)
The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf