Your SlideShare is downloading. ×
Yammer for
Developers
Christian Glessner, Experts Inside
SharePoint MVP
Christian
Glessner
• Leitwolf @ Experts Inside
Germany
• SharePoint MVP since 2009
• cg@expertsinside.com
www.sharepointeu...
Agenda
• Introduction
• Using Yammer Embed
• Authentication
• Open Graph API
• REST API
www.sharepointeurope.com
Why Yammer is unique
• Enterprise Social
• Best-in-class enterprise social networking service
• Rapid innovation
• Deliver...
Activity Stream
Private
messaging
Groups
News feed
Yammer 101
The social layer across all enterprise applications
CMS CRM HR ERP EVER EVOLVING
The Yammer Platform
Using Yammer Embed
Feeds for Groups, Topics, Users and Comments
www.sharepointeurope.com
What is a Yammer Embed?
• Yammer Embed is a JavaScript-based widget that harnesses
the power of your enterprise social pla...
How does it work?
www.sharepointeurope.com



1. It has a reference to the
yam.js script file.
2. It has the initializa...
Feed Description FeedType Use Case
My Feed My Feeds are where conversations are
delivered for Yammer users.
See My Feed
ex...
When to Use Yammer Embeds
The situations below outline when you should use a
Yammer Embed and when you might want to utili...
Action Buttons
Demo
• Embedding Feeds
– JSFiddle
– SharePoint App
– WCM
• Action Buttons
Authentication
Yammer App Authentication with OAuth 2.0
OAuth 2.0
OAuth 2.0 focuses on
client developer simplicity
while providing specific
authorization flows for
web applicatio...
Authentication Flow
1. User authentication - ensures that the user is
who they say they are.
2. App authorization - ensure...
1. User Authentication
www.sharepointeurope.com
https://www.yammer.com/dialog/oauth?
client_id=[:client_id]
&redirect_uri=...
2. App Authorization
Once Yammer has successfully authenticated the user, the
OAuth dialog will prompt them to authorize t...
3a. App Authentication
Next, submit a GET on the OAuth Token Endpoint,
passing in the authorization code you got above and...
3b. App Authentication
Yammer will return an access token object as part of the
response, which includes user profile info...
Demo
• Create First Yammer App
• Create Test Token
• .NET MVC Client
www.sharepointeurope.com
Open Graph API
Connecting Yammer with the Social Graph
The Open
Graph Protocol
The Open Graph protocol
enables any web page to
become a rich object in a
social graph. For instan...
Spotify leverages Open Graph in
Facebook
Open Graph creates a powerful viral loop
The Open Graph protocol models Actor (User) activities
based on Actions and Objects.
Jimmy shared a file from
SharePoint.
...
The Open Graph Schema
27
Supported object types:
• page (default)
• place
• person
• department
• team
• project
• folder
...
Demo
• Post a public link
• Open Graph API
REST API
Yammer provides a RESTful interface to the resources in the
Yammer web interface
www.sharepointeurope.com
REST API for…
• Messages
• Groups
• Users
• Relationships
• Notifications
• Suggestions
• Subscriptions
• Search
• Autocom...
Demo
• Using the REST API…
www.sharepointeurope.com
Summary
Open Graph REST API Embed
Approach
(presentation, integration, both)
Both Both Presentation
Direction
(inbound, ou...
Resources
• Yammer Success Center
• Out-of-the-box Integrations, Road map,
Social Journey
• Yammer Developer Network
• API...
Upcoming SlideShare
Loading in...5
×

Yammer for developers

1,107

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,107
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • <script type="text/javascript" src="https://assets.yammer.com/assets/platform_embed.js"> <div id="feed" style="height:400px;width:500px"></div>///<referencepath="ShareCoffee/ShareCoffee.js"/>$(document).ready(function () {varhostUrl = ShareCoffee.Commons.getHostWebUrl();varhostTitle = ShareCoffee.Commons.getQueryStringParameter("SPHostTitle");yam.connect.embedFeed({container: "#feed",feedType: "open-graph",network: "expertsinside.com",config: {header: false,footer: false,showOpenGraphPreview: true },objectProperties: { url: hostUrl, type: "page", title: decodeURIComponent(hostTitle) } });});https://expertsinside.sharepoint.com/sites/cg-wcm
  • 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
  • https://www.yammer.com/dialog/oauth?client_id=[:client_id]&redirect_uri=[:redirect_uri]https://www.yammer.com/dialog/oauth?client_id=hbOj1B3Z53EHJDJCMSbI7w&redirect_uri=https://yammer.comCode = WsHYGa4ejh17ci6iBrX9whttps://www.yammer.com/oauth2/access_token.json?client_id=hbOj1B3Z53EHJDJCMSbI7w&client_secret=XRuLPYirFNq70pb2Ls0e8B5Elxl3ZIc1yNiE8yx18k&code=WsHYGa4ejh17ci6iBrX9wACCESS TOKEN:cuHDMQChC50qdhSpjQwAFilehttps://expertsinside-my.sharepoint.com/personal/cg_expertsinside_com/_layouts/15/guestaccess.aspx?guestaccesstoken=vrfepGS6F8jNCBCdMi7yXTAyLTShJ1Ym0UsWEk8PuTk%3d&docid=090bb5c79ec13485f916985c71e837fe8
  • https://www.yammer.com/dialog/oauth?client_id=[:client_id]&redirect_uri=[:redirect_uri]https://www.yammer.com/dialog/oauth?client_id=hbOj1B3Z53EHJDJCMSbI7w&redirect_uri=https://yammer.com
  • https://www.yammer.com/dialog/oauth?client_id=[:client_id]&redirect_uri=[:redirect_uri]https://www.yammer.com/oauth2/access_token.json?client_id=[:client_id]&client_secret=[:client_secret]&code=[:code]https://www.yammer.com/dialog/oauth?client_id=[:client_id]&redirect_uri=[:redirect_uri]https://www.yammer.com/dialog/oauth?client_id=hbOj1B3Z53EHJDJCMSbI7w&redirect_uri=https://yammer.comCode = WsHYGa4ejh17ci6iBrX9whttps://www.yammer.com/oauth2/access_token.json?client_id=hbOj1B3Z53EHJDJCMSbI7w&client_secret=XRuLPYirFNq70pb2Ls0e8B5Elxl3ZIc1yNiE8yx18k&code=WsHYGa4ejh17ci6iBrX9wACCESS TOKEN:cuHDMQChC50qdhSpjQwA
  • https://www.yammer.com/dialog/oauth?client_id=[:client_id]&redirect_uri=[:redirect_uri]https://www.yammer.com/dialog/oauth?client_id=hbOj1B3Z53EHJDJCMSbI7w&redirect_uri=https://yammer.comCode = WsHYGa4ejh17ci6iBrX9whttps://www.yammer.com/oauth2/access_token.json?client_id=hbOj1B3Z53EHJDJCMSbI7w&client_secret=XRuLPYirFNq70pb2Ls0e8B5Elxl3ZIc1yNiE8yx18k&code=WsHYGa4ejh17ci6iBrX9wTOKEN:cuHDMQChC50qdhSpjQwAFilehttps://expertsinside-my.sharepoint.com/personal/cg_expertsinside_com/_layouts/15/guestaccess.aspx?guestaccesstoken=vrfepGS6F8jNCBCdMi7yXTAyLTShJ1Ym0UsWEk8PuTk%3d&docid=090bb5c79ec13485f916985c71e837fe8
  • Transcript of "Yammer for developers"

    1. 1. Yammer for Developers Christian Glessner, Experts Inside SharePoint MVP
    2. 2. Christian Glessner • Leitwolf @ Experts Inside Germany • SharePoint MVP since 2009 • cg@expertsinside.com www.sharepointeurope.com
    3. 3. Agenda • Introduction • Using Yammer Embed • Authentication • Open Graph API • REST API www.sharepointeurope.com
    4. 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
    5. 5. Activity Stream Private messaging Groups News feed Yammer 101
    6. 6. The social layer across all enterprise applications CMS CRM HR ERP EVER EVOLVING The Yammer Platform
    7. 7. Using Yammer Embed Feeds for Groups, Topics, Users and Comments www.sharepointeurope.com
    8. 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. 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. 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. 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.
    12. 12. Action Buttons
    13. 13. Demo • Embedding Feeds – JSFiddle – SharePoint App – WCM • Action Buttons
    14. 14. Authentication Yammer App Authentication with OAuth 2.0
    15. 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. 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
    17. 17. 1. User Authentication www.sharepointeurope.com https://www.yammer.com/dialog/oauth? client_id=[:client_id] &redirect_uri=[:redirect_uri]
    18. 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. 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. 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. 21. Demo • Create First Yammer App • Create Test Token • .NET MVC Client www.sharepointeurope.com
    22. 22. Open Graph API Connecting Yammer with the Social Graph
    23. 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
    24. 24. Spotify leverages Open Graph in Facebook Open Graph creates a powerful viral loop
    25. 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. 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.
    27. 27. Demo • Post a public link • Open Graph API
    28. 28. REST API Yammer provides a RESTful interface to the resources in the Yammer web interface www.sharepointeurope.com
    29. 29. REST API for… • Messages • Groups • Users • Relationships • Notifications • Suggestions • Subscriptions • Search • Autocomplete • Invitations • Networks www.sharepointeurope.com
    30. 30. Demo • Using the REST API… www.sharepointeurope.com
    31. 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. 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)

    ×