SlideShare a Scribd company logo
1 of 32
Yammer for
Developers
Christian Glessner, Experts Inside
SharePoint MVP
Christian
Glessner
• Leitwolf @ Experts Inside
Germany
• SharePoint MVP since 2009
• cg@expertsinside.com
www.sharepointeurope.com
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
• Delivering improved features via an agile development
methodology
• Unique adoption model
• Viral model that appeals directly to end users
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 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.
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
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
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.
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 applications, desktop
applications, mobile
phones, and living room
devices.
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
1. User Authentication
www.sharepointeurope.com
https://www.yammer.com/dialog/oauth?
client_id=[:client_id]
&redirect_uri=[:redirect_uri]
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]
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]
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
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 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
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.
Sam voted up an idea in Spigit.
Michelle updated a record in
Dynamics.
Arisa closed a ticket in Zendesk.
Yammer Open Graph API
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.
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
• Autocomplete
• Invitations
• Networks
www.sharepointeurope.com
Demo
• Using the REST API…
www.sharepointeurope.com
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
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)

More Related Content

Similar to Yammer for developers

Biwug1903 yammer-development
Biwug1903 yammer-developmentBiwug1903 yammer-development
Biwug1903 yammer-developmentBIWUG
 
SPCA2013 - Yammer and SharePoint Happily Married
SPCA2013 - Yammer and SharePoint Happily MarriedSPCA2013 - Yammer and SharePoint Happily Married
SPCA2013 - Yammer and SharePoint Happily MarriedNCCOMMS
 
Yammer SDK SPSUK
Yammer SDK SPSUKYammer SDK SPSUK
Yammer SDK SPSUKWes Hackett
 
Salesforce zoom integration
Salesforce zoom integrationSalesforce zoom integration
Salesforce zoom integrationsampat786
 
SPEvo 2015 Yammer deep dive
SPEvo 2015 Yammer deep diveSPEvo 2015 Yammer deep dive
SPEvo 2015 Yammer deep diveWes Hackett
 
http://fr.slideshare.net/TechnetFrance/mod305-45116527
http://fr.slideshare.net/TechnetFrance/mod305-45116527http://fr.slideshare.net/TechnetFrance/mod305-45116527
http://fr.slideshare.net/TechnetFrance/mod305-45116527Microsoft Technet France
 
Share point fest presentation v3
Share point fest presentation v3Share point fest presentation v3
Share point fest presentation v3Bill Ryan
 
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...Amazon Web Services
 
SharePoint 2013 Social yammer queport integration
SharePoint 2013 Social   yammer queport integrationSharePoint 2013 Social   yammer queport integration
SharePoint 2013 Social yammer queport integrationRagnar Heil
 
Emerging Technologies: Heroku for ISVs (October 13, 2014)
Emerging Technologies: Heroku for ISVs (October 13, 2014)Emerging Technologies: Heroku for ISVs (October 13, 2014)
Emerging Technologies: Heroku for ISVs (October 13, 2014)Salesforce Partners
 
SRV315 Building Enterprise-Grade Serverless Apps
 SRV315 Building Enterprise-Grade Serverless Apps SRV315 Building Enterprise-Grade Serverless Apps
SRV315 Building Enterprise-Grade Serverless AppsAmazon Web Services
 
Detailed Technical Portfolio
Detailed Technical PortfolioDetailed Technical Portfolio
Detailed Technical PortfolioTahirMustafa
 
Identity and access control for custom enterprise applications - SDD412 - AWS...
Identity and access control for custom enterprise applications - SDD412 - AWS...Identity and access control for custom enterprise applications - SDD412 - AWS...
Identity and access control for custom enterprise applications - SDD412 - AWS...Amazon Web Services
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsShailen Sukul
 
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018Amazon Web Services
 
Build an AppStream 2.0 Environment to Deliver Desktop Applications to Any Com...
Build an AppStream 2.0 Environment to Deliver Desktop Applications to Any Com...Build an AppStream 2.0 Environment to Deliver Desktop Applications to Any Com...
Build an AppStream 2.0 Environment to Deliver Desktop Applications to Any Com...Amazon Web Services
 
AWS Security Best Practices in a Zero Trust Security Model - DEM08 - Toronto ...
AWS Security Best Practices in a Zero Trust Security Model - DEM08 - Toronto ...AWS Security Best Practices in a Zero Trust Security Model - DEM08 - Toronto ...
AWS Security Best Practices in a Zero Trust Security Model - DEM08 - Toronto ...Amazon Web Services
 
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...Amazon Web Services
 

Similar to Yammer for developers (20)

Biwug1903 yammer-development
Biwug1903 yammer-developmentBiwug1903 yammer-development
Biwug1903 yammer-development
 
SPCA2013 - Yammer and SharePoint Happily Married
SPCA2013 - Yammer and SharePoint Happily MarriedSPCA2013 - Yammer and SharePoint Happily Married
SPCA2013 - Yammer and SharePoint Happily Married
 
Yammer SDK SPSUK
Yammer SDK SPSUKYammer SDK SPSUK
Yammer SDK SPSUK
 
Salesforce zoom integration
Salesforce zoom integrationSalesforce zoom integration
Salesforce zoom integration
 
SPEvo 2015 Yammer deep dive
SPEvo 2015 Yammer deep diveSPEvo 2015 Yammer deep dive
SPEvo 2015 Yammer deep dive
 
http://fr.slideshare.net/TechnetFrance/mod305-45116527
http://fr.slideshare.net/TechnetFrance/mod305-45116527http://fr.slideshare.net/TechnetFrance/mod305-45116527
http://fr.slideshare.net/TechnetFrance/mod305-45116527
 
Share point fest presentation v3
Share point fest presentation v3Share point fest presentation v3
Share point fest presentation v3
 
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
 
SharePoint 2013 Social yammer queport integration
SharePoint 2013 Social   yammer queport integrationSharePoint 2013 Social   yammer queport integration
SharePoint 2013 Social yammer queport integration
 
Emerging Technologies: Heroku for ISVs (October 13, 2014)
Emerging Technologies: Heroku for ISVs (October 13, 2014)Emerging Technologies: Heroku for ISVs (October 13, 2014)
Emerging Technologies: Heroku for ISVs (October 13, 2014)
 
Under the hood of Yammer
Under the hood of YammerUnder the hood of Yammer
Under the hood of Yammer
 
SRV315 Building Enterprise-Grade Serverless Apps
 SRV315 Building Enterprise-Grade Serverless Apps SRV315 Building Enterprise-Grade Serverless Apps
SRV315 Building Enterprise-Grade Serverless Apps
 
Detailed Technical Portfolio
Detailed Technical PortfolioDetailed Technical Portfolio
Detailed Technical Portfolio
 
Identity and access control for custom enterprise applications - SDD412 - AWS...
Identity and access control for custom enterprise applications - SDD412 - AWS...Identity and access control for custom enterprise applications - SDD412 - AWS...
Identity and access control for custom enterprise applications - SDD412 - AWS...
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning Models
 
Best Practices to Build Marketplace-Ready Integrations
Best Practices to Build Marketplace-Ready IntegrationsBest Practices to Build Marketplace-Ready Integrations
Best Practices to Build Marketplace-Ready Integrations
 
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
 
Build an AppStream 2.0 Environment to Deliver Desktop Applications to Any Com...
Build an AppStream 2.0 Environment to Deliver Desktop Applications to Any Com...Build an AppStream 2.0 Environment to Deliver Desktop Applications to Any Com...
Build an AppStream 2.0 Environment to Deliver Desktop Applications to Any Com...
 
AWS Security Best Practices in a Zero Trust Security Model - DEM08 - Toronto ...
AWS Security Best Practices in a Zero Trust Security Model - DEM08 - Toronto ...AWS Security Best Practices in a Zero Trust Security Model - DEM08 - Toronto ...
AWS Security Best Practices in a Zero Trust Security Model - DEM08 - Toronto ...
 
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
 

Recently uploaded

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Recently uploaded (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

Yammer for developers

  • 1. Yammer for Developers Christian Glessner, Experts Inside SharePoint MVP
  • 2. Christian Glessner • Leitwolf @ Experts Inside Germany • SharePoint MVP since 2009 • cg@expertsinside.com www.sharepointeurope.com
  • 3. Agenda • Introduction • Using Yammer Embed • Authentication • Open Graph API • REST API www.sharepointeurope.com
  • 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
  • 6. The social layer across all enterprise applications CMS CRM HR ERP EVER EVOLVING The Yammer Platform
  • 7. Using Yammer Embed Feeds for Groups, Topics, Users and Comments www.sharepointeurope.com
  • 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.
  • 13. Demo • Embedding Feeds – JSFiddle – SharePoint App – WCM • Action Buttons
  • 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
  • 22. Open Graph API Connecting Yammer with the Social Graph
  • 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. Spotify leverages Open Graph in Facebook Open Graph creates a powerful viral loop
  • 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.
  • 27. Demo • Post a public link • Open Graph API
  • 28. REST API Yammer provides a RESTful interface to the resources in the Yammer web interface www.sharepointeurope.com
  • 29. REST API for… • Messages • Groups • Users • Relationships • Notifications • Suggestions • Subscriptions • Search • Autocomplete • Invitations • Networks www.sharepointeurope.com
  • 30. Demo • Using the REST API… www.sharepointeurope.com
  • 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)

Editor's Notes

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