build your own yammer app @ collab365

52
Online Conference June 17 th and 18 th 2015 WWW.COLLAB365.EVENTS Build your own Yammer App

Upload: alexander-meijers

Post on 23-Jan-2018

1.162 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Build your own yammer app @ Collab365

Online Conference

June 17th and 18th 2015WWWCOLLAB365EVENTS

Build your own Yammer App

WWWCOLLAB365EVENTS

Alexander Meijers

Lead Architect Portiva

Twitter ameijers

Email alexanderappzinsidecom

Phone +31652012406

Apps | Azure | SharePoint | Office 365 |

Development | Functional | Architecture |

Love to connect with people | Community

Fan | Speaker | Blogger | 2 kids | Fitness |

Airsoft

WWWCOLLAB365EVENTS

Agenda

bull What about Yammerbull Integration with Yammerbull Yammer API

ndash REST APIndash JavaScript SDK ndash Yammer Embedndash Open Graph

bull Yammer and NETbull Takeaways amp round up

WWWCOLLAB365EVENTS

Yammer

WWWCOLLAB365EVENTS

What is Yammer

bull It allows organizations to extend their systems socially by using one or more social networks

bull Create communities around content

bull What can you dondash Send and receive messagesndash Show activity around objectsndash Follow and like messages topics and

other information

WWWCOLLAB365EVENTS

Networksbull Internal network

ndash Also called a Home Networkndash Private and secure collaboration space for company employees to connect

with their coworkersndash Only available for employees with verified corporate e-mail addresses

bull External networkndash Separate extension of your Home networkndash Private and secure collaboration space for your company to engage with

users outside the organizationndash Allows to invite users from outside your organizationndash Access is invitation only

WWWCOLLAB365EVENTS

Yammer main structure

WWWCOLLAB365EVENTS

Example of Yammer network

WWWCOLLAB365EVENTS

VersionsBasic

(Freemium)Enterprise

(paid)

Basic Yammer Features X X

Collaboration Features X X

Yammer Mobile X X

Apps X X

Admin Tools X

Network level Apps and integration X

Support and Services X

WWWCOLLAB365EVENTS

Roles and rights

bull More informationndash httpwwwcollabshowcom20140106yammer-roles-permissions-drill-

down

Member All users are at least a member of the Yammer network Ability to use yammer

Group admin The person who created a group becomes the group admin of that group It allows to add and remove members from that group

Network admin admin This role manages the network This requires a ldquopaidrdquo network

Verified admin The role has all the abilities and is sometimes called the one with ldquoGodrdquo rights This requires a ldquopaidrdquo network

WWWCOLLAB365EVENTS

Integration with Yammer

WWWCOLLAB365EVENTS

Integration possibilities

bull SharePoint add-ins ndash On-premises or online

bull Office 365

bull Office add-ins

bull Azure Apps and Services

bull Other platforms

WWWCOLLAB365EVENTS

SharePoint integration in Yammer

bull Yammer Web Partndash Discontinued and stopped working on September 15th 2015

(httpgooglk2LuSs)

bull Yammer Embedndash Microsoftrsquos single solution to integrate Yammer feeds into

SharePoint

bull Other options as document and list integration federated search activity streams single sign-on admin configurationsndash httpsupportmicrosoftcomkb2835453

WWWCOLLAB365EVENTS

SharePoint Add-ins explainedAdd-in

Web

On-

premises

SharePoint

Add-in

Web

SharePoint

Online

Parent Web

(Host)

App Web

Add-in runs on local web server

or in the cloud

High trust is needed

Add-in runs on local web server

or in the cloud

Provider-hosted

SharePoint Add-inThe add-in runs in a separate host

Or as a service Use your own

Choice of server hosting

Architecture Code is allowed

SharePoint-Hosted Add-inCreation of isolated sub web on a parent web

Contains only web elements

Examples are lists out-of-the box Web Parts

No server code allowed only client JavaScript for logic and UX

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 2: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Alexander Meijers

Lead Architect Portiva

Twitter ameijers

Email alexanderappzinsidecom

Phone +31652012406

Apps | Azure | SharePoint | Office 365 |

Development | Functional | Architecture |

Love to connect with people | Community

Fan | Speaker | Blogger | 2 kids | Fitness |

Airsoft

WWWCOLLAB365EVENTS

Agenda

bull What about Yammerbull Integration with Yammerbull Yammer API

ndash REST APIndash JavaScript SDK ndash Yammer Embedndash Open Graph

bull Yammer and NETbull Takeaways amp round up

WWWCOLLAB365EVENTS

Yammer

WWWCOLLAB365EVENTS

What is Yammer

bull It allows organizations to extend their systems socially by using one or more social networks

bull Create communities around content

bull What can you dondash Send and receive messagesndash Show activity around objectsndash Follow and like messages topics and

other information

WWWCOLLAB365EVENTS

Networksbull Internal network

ndash Also called a Home Networkndash Private and secure collaboration space for company employees to connect

with their coworkersndash Only available for employees with verified corporate e-mail addresses

bull External networkndash Separate extension of your Home networkndash Private and secure collaboration space for your company to engage with

users outside the organizationndash Allows to invite users from outside your organizationndash Access is invitation only

WWWCOLLAB365EVENTS

Yammer main structure

WWWCOLLAB365EVENTS

Example of Yammer network

WWWCOLLAB365EVENTS

VersionsBasic

(Freemium)Enterprise

(paid)

Basic Yammer Features X X

Collaboration Features X X

Yammer Mobile X X

Apps X X

Admin Tools X

Network level Apps and integration X

Support and Services X

WWWCOLLAB365EVENTS

Roles and rights

bull More informationndash httpwwwcollabshowcom20140106yammer-roles-permissions-drill-

down

Member All users are at least a member of the Yammer network Ability to use yammer

Group admin The person who created a group becomes the group admin of that group It allows to add and remove members from that group

Network admin admin This role manages the network This requires a ldquopaidrdquo network

Verified admin The role has all the abilities and is sometimes called the one with ldquoGodrdquo rights This requires a ldquopaidrdquo network

WWWCOLLAB365EVENTS

Integration with Yammer

WWWCOLLAB365EVENTS

Integration possibilities

bull SharePoint add-ins ndash On-premises or online

bull Office 365

bull Office add-ins

bull Azure Apps and Services

bull Other platforms

WWWCOLLAB365EVENTS

SharePoint integration in Yammer

bull Yammer Web Partndash Discontinued and stopped working on September 15th 2015

(httpgooglk2LuSs)

bull Yammer Embedndash Microsoftrsquos single solution to integrate Yammer feeds into

SharePoint

bull Other options as document and list integration federated search activity streams single sign-on admin configurationsndash httpsupportmicrosoftcomkb2835453

WWWCOLLAB365EVENTS

SharePoint Add-ins explainedAdd-in

Web

On-

premises

SharePoint

Add-in

Web

SharePoint

Online

Parent Web

(Host)

App Web

Add-in runs on local web server

or in the cloud

High trust is needed

Add-in runs on local web server

or in the cloud

Provider-hosted

SharePoint Add-inThe add-in runs in a separate host

Or as a service Use your own

Choice of server hosting

Architecture Code is allowed

SharePoint-Hosted Add-inCreation of isolated sub web on a parent web

Contains only web elements

Examples are lists out-of-the box Web Parts

No server code allowed only client JavaScript for logic and UX

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 3: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Agenda

bull What about Yammerbull Integration with Yammerbull Yammer API

ndash REST APIndash JavaScript SDK ndash Yammer Embedndash Open Graph

bull Yammer and NETbull Takeaways amp round up

WWWCOLLAB365EVENTS

Yammer

WWWCOLLAB365EVENTS

What is Yammer

bull It allows organizations to extend their systems socially by using one or more social networks

bull Create communities around content

bull What can you dondash Send and receive messagesndash Show activity around objectsndash Follow and like messages topics and

other information

WWWCOLLAB365EVENTS

Networksbull Internal network

ndash Also called a Home Networkndash Private and secure collaboration space for company employees to connect

with their coworkersndash Only available for employees with verified corporate e-mail addresses

bull External networkndash Separate extension of your Home networkndash Private and secure collaboration space for your company to engage with

users outside the organizationndash Allows to invite users from outside your organizationndash Access is invitation only

WWWCOLLAB365EVENTS

Yammer main structure

WWWCOLLAB365EVENTS

Example of Yammer network

WWWCOLLAB365EVENTS

VersionsBasic

(Freemium)Enterprise

(paid)

Basic Yammer Features X X

Collaboration Features X X

Yammer Mobile X X

Apps X X

Admin Tools X

Network level Apps and integration X

Support and Services X

WWWCOLLAB365EVENTS

Roles and rights

bull More informationndash httpwwwcollabshowcom20140106yammer-roles-permissions-drill-

down

Member All users are at least a member of the Yammer network Ability to use yammer

Group admin The person who created a group becomes the group admin of that group It allows to add and remove members from that group

Network admin admin This role manages the network This requires a ldquopaidrdquo network

Verified admin The role has all the abilities and is sometimes called the one with ldquoGodrdquo rights This requires a ldquopaidrdquo network

WWWCOLLAB365EVENTS

Integration with Yammer

WWWCOLLAB365EVENTS

Integration possibilities

bull SharePoint add-ins ndash On-premises or online

bull Office 365

bull Office add-ins

bull Azure Apps and Services

bull Other platforms

WWWCOLLAB365EVENTS

SharePoint integration in Yammer

bull Yammer Web Partndash Discontinued and stopped working on September 15th 2015

(httpgooglk2LuSs)

bull Yammer Embedndash Microsoftrsquos single solution to integrate Yammer feeds into

SharePoint

bull Other options as document and list integration federated search activity streams single sign-on admin configurationsndash httpsupportmicrosoftcomkb2835453

WWWCOLLAB365EVENTS

SharePoint Add-ins explainedAdd-in

Web

On-

premises

SharePoint

Add-in

Web

SharePoint

Online

Parent Web

(Host)

App Web

Add-in runs on local web server

or in the cloud

High trust is needed

Add-in runs on local web server

or in the cloud

Provider-hosted

SharePoint Add-inThe add-in runs in a separate host

Or as a service Use your own

Choice of server hosting

Architecture Code is allowed

SharePoint-Hosted Add-inCreation of isolated sub web on a parent web

Contains only web elements

Examples are lists out-of-the box Web Parts

No server code allowed only client JavaScript for logic and UX

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 4: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Yammer

WWWCOLLAB365EVENTS

What is Yammer

bull It allows organizations to extend their systems socially by using one or more social networks

bull Create communities around content

bull What can you dondash Send and receive messagesndash Show activity around objectsndash Follow and like messages topics and

other information

WWWCOLLAB365EVENTS

Networksbull Internal network

ndash Also called a Home Networkndash Private and secure collaboration space for company employees to connect

with their coworkersndash Only available for employees with verified corporate e-mail addresses

bull External networkndash Separate extension of your Home networkndash Private and secure collaboration space for your company to engage with

users outside the organizationndash Allows to invite users from outside your organizationndash Access is invitation only

WWWCOLLAB365EVENTS

Yammer main structure

WWWCOLLAB365EVENTS

Example of Yammer network

WWWCOLLAB365EVENTS

VersionsBasic

(Freemium)Enterprise

(paid)

Basic Yammer Features X X

Collaboration Features X X

Yammer Mobile X X

Apps X X

Admin Tools X

Network level Apps and integration X

Support and Services X

WWWCOLLAB365EVENTS

Roles and rights

bull More informationndash httpwwwcollabshowcom20140106yammer-roles-permissions-drill-

down

Member All users are at least a member of the Yammer network Ability to use yammer

Group admin The person who created a group becomes the group admin of that group It allows to add and remove members from that group

Network admin admin This role manages the network This requires a ldquopaidrdquo network

Verified admin The role has all the abilities and is sometimes called the one with ldquoGodrdquo rights This requires a ldquopaidrdquo network

WWWCOLLAB365EVENTS

Integration with Yammer

WWWCOLLAB365EVENTS

Integration possibilities

bull SharePoint add-ins ndash On-premises or online

bull Office 365

bull Office add-ins

bull Azure Apps and Services

bull Other platforms

WWWCOLLAB365EVENTS

SharePoint integration in Yammer

bull Yammer Web Partndash Discontinued and stopped working on September 15th 2015

(httpgooglk2LuSs)

bull Yammer Embedndash Microsoftrsquos single solution to integrate Yammer feeds into

SharePoint

bull Other options as document and list integration federated search activity streams single sign-on admin configurationsndash httpsupportmicrosoftcomkb2835453

WWWCOLLAB365EVENTS

SharePoint Add-ins explainedAdd-in

Web

On-

premises

SharePoint

Add-in

Web

SharePoint

Online

Parent Web

(Host)

App Web

Add-in runs on local web server

or in the cloud

High trust is needed

Add-in runs on local web server

or in the cloud

Provider-hosted

SharePoint Add-inThe add-in runs in a separate host

Or as a service Use your own

Choice of server hosting

Architecture Code is allowed

SharePoint-Hosted Add-inCreation of isolated sub web on a parent web

Contains only web elements

Examples are lists out-of-the box Web Parts

No server code allowed only client JavaScript for logic and UX

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 5: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

What is Yammer

bull It allows organizations to extend their systems socially by using one or more social networks

bull Create communities around content

bull What can you dondash Send and receive messagesndash Show activity around objectsndash Follow and like messages topics and

other information

WWWCOLLAB365EVENTS

Networksbull Internal network

ndash Also called a Home Networkndash Private and secure collaboration space for company employees to connect

with their coworkersndash Only available for employees with verified corporate e-mail addresses

bull External networkndash Separate extension of your Home networkndash Private and secure collaboration space for your company to engage with

users outside the organizationndash Allows to invite users from outside your organizationndash Access is invitation only

WWWCOLLAB365EVENTS

Yammer main structure

WWWCOLLAB365EVENTS

Example of Yammer network

WWWCOLLAB365EVENTS

VersionsBasic

(Freemium)Enterprise

(paid)

Basic Yammer Features X X

Collaboration Features X X

Yammer Mobile X X

Apps X X

Admin Tools X

Network level Apps and integration X

Support and Services X

WWWCOLLAB365EVENTS

Roles and rights

bull More informationndash httpwwwcollabshowcom20140106yammer-roles-permissions-drill-

down

Member All users are at least a member of the Yammer network Ability to use yammer

Group admin The person who created a group becomes the group admin of that group It allows to add and remove members from that group

Network admin admin This role manages the network This requires a ldquopaidrdquo network

Verified admin The role has all the abilities and is sometimes called the one with ldquoGodrdquo rights This requires a ldquopaidrdquo network

WWWCOLLAB365EVENTS

Integration with Yammer

WWWCOLLAB365EVENTS

Integration possibilities

bull SharePoint add-ins ndash On-premises or online

bull Office 365

bull Office add-ins

bull Azure Apps and Services

bull Other platforms

WWWCOLLAB365EVENTS

SharePoint integration in Yammer

bull Yammer Web Partndash Discontinued and stopped working on September 15th 2015

(httpgooglk2LuSs)

bull Yammer Embedndash Microsoftrsquos single solution to integrate Yammer feeds into

SharePoint

bull Other options as document and list integration federated search activity streams single sign-on admin configurationsndash httpsupportmicrosoftcomkb2835453

WWWCOLLAB365EVENTS

SharePoint Add-ins explainedAdd-in

Web

On-

premises

SharePoint

Add-in

Web

SharePoint

Online

Parent Web

(Host)

App Web

Add-in runs on local web server

or in the cloud

High trust is needed

Add-in runs on local web server

or in the cloud

Provider-hosted

SharePoint Add-inThe add-in runs in a separate host

Or as a service Use your own

Choice of server hosting

Architecture Code is allowed

SharePoint-Hosted Add-inCreation of isolated sub web on a parent web

Contains only web elements

Examples are lists out-of-the box Web Parts

No server code allowed only client JavaScript for logic and UX

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 6: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Networksbull Internal network

ndash Also called a Home Networkndash Private and secure collaboration space for company employees to connect

with their coworkersndash Only available for employees with verified corporate e-mail addresses

bull External networkndash Separate extension of your Home networkndash Private and secure collaboration space for your company to engage with

users outside the organizationndash Allows to invite users from outside your organizationndash Access is invitation only

WWWCOLLAB365EVENTS

Yammer main structure

WWWCOLLAB365EVENTS

Example of Yammer network

WWWCOLLAB365EVENTS

VersionsBasic

(Freemium)Enterprise

(paid)

Basic Yammer Features X X

Collaboration Features X X

Yammer Mobile X X

Apps X X

Admin Tools X

Network level Apps and integration X

Support and Services X

WWWCOLLAB365EVENTS

Roles and rights

bull More informationndash httpwwwcollabshowcom20140106yammer-roles-permissions-drill-

down

Member All users are at least a member of the Yammer network Ability to use yammer

Group admin The person who created a group becomes the group admin of that group It allows to add and remove members from that group

Network admin admin This role manages the network This requires a ldquopaidrdquo network

Verified admin The role has all the abilities and is sometimes called the one with ldquoGodrdquo rights This requires a ldquopaidrdquo network

WWWCOLLAB365EVENTS

Integration with Yammer

WWWCOLLAB365EVENTS

Integration possibilities

bull SharePoint add-ins ndash On-premises or online

bull Office 365

bull Office add-ins

bull Azure Apps and Services

bull Other platforms

WWWCOLLAB365EVENTS

SharePoint integration in Yammer

bull Yammer Web Partndash Discontinued and stopped working on September 15th 2015

(httpgooglk2LuSs)

bull Yammer Embedndash Microsoftrsquos single solution to integrate Yammer feeds into

SharePoint

bull Other options as document and list integration federated search activity streams single sign-on admin configurationsndash httpsupportmicrosoftcomkb2835453

WWWCOLLAB365EVENTS

SharePoint Add-ins explainedAdd-in

Web

On-

premises

SharePoint

Add-in

Web

SharePoint

Online

Parent Web

(Host)

App Web

Add-in runs on local web server

or in the cloud

High trust is needed

Add-in runs on local web server

or in the cloud

Provider-hosted

SharePoint Add-inThe add-in runs in a separate host

Or as a service Use your own

Choice of server hosting

Architecture Code is allowed

SharePoint-Hosted Add-inCreation of isolated sub web on a parent web

Contains only web elements

Examples are lists out-of-the box Web Parts

No server code allowed only client JavaScript for logic and UX

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 7: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Yammer main structure

WWWCOLLAB365EVENTS

Example of Yammer network

WWWCOLLAB365EVENTS

VersionsBasic

(Freemium)Enterprise

(paid)

Basic Yammer Features X X

Collaboration Features X X

Yammer Mobile X X

Apps X X

Admin Tools X

Network level Apps and integration X

Support and Services X

WWWCOLLAB365EVENTS

Roles and rights

bull More informationndash httpwwwcollabshowcom20140106yammer-roles-permissions-drill-

down

Member All users are at least a member of the Yammer network Ability to use yammer

Group admin The person who created a group becomes the group admin of that group It allows to add and remove members from that group

Network admin admin This role manages the network This requires a ldquopaidrdquo network

Verified admin The role has all the abilities and is sometimes called the one with ldquoGodrdquo rights This requires a ldquopaidrdquo network

WWWCOLLAB365EVENTS

Integration with Yammer

WWWCOLLAB365EVENTS

Integration possibilities

bull SharePoint add-ins ndash On-premises or online

bull Office 365

bull Office add-ins

bull Azure Apps and Services

bull Other platforms

WWWCOLLAB365EVENTS

SharePoint integration in Yammer

bull Yammer Web Partndash Discontinued and stopped working on September 15th 2015

(httpgooglk2LuSs)

bull Yammer Embedndash Microsoftrsquos single solution to integrate Yammer feeds into

SharePoint

bull Other options as document and list integration federated search activity streams single sign-on admin configurationsndash httpsupportmicrosoftcomkb2835453

WWWCOLLAB365EVENTS

SharePoint Add-ins explainedAdd-in

Web

On-

premises

SharePoint

Add-in

Web

SharePoint

Online

Parent Web

(Host)

App Web

Add-in runs on local web server

or in the cloud

High trust is needed

Add-in runs on local web server

or in the cloud

Provider-hosted

SharePoint Add-inThe add-in runs in a separate host

Or as a service Use your own

Choice of server hosting

Architecture Code is allowed

SharePoint-Hosted Add-inCreation of isolated sub web on a parent web

Contains only web elements

Examples are lists out-of-the box Web Parts

No server code allowed only client JavaScript for logic and UX

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 8: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Example of Yammer network

WWWCOLLAB365EVENTS

VersionsBasic

(Freemium)Enterprise

(paid)

Basic Yammer Features X X

Collaboration Features X X

Yammer Mobile X X

Apps X X

Admin Tools X

Network level Apps and integration X

Support and Services X

WWWCOLLAB365EVENTS

Roles and rights

bull More informationndash httpwwwcollabshowcom20140106yammer-roles-permissions-drill-

down

Member All users are at least a member of the Yammer network Ability to use yammer

Group admin The person who created a group becomes the group admin of that group It allows to add and remove members from that group

Network admin admin This role manages the network This requires a ldquopaidrdquo network

Verified admin The role has all the abilities and is sometimes called the one with ldquoGodrdquo rights This requires a ldquopaidrdquo network

WWWCOLLAB365EVENTS

Integration with Yammer

WWWCOLLAB365EVENTS

Integration possibilities

bull SharePoint add-ins ndash On-premises or online

bull Office 365

bull Office add-ins

bull Azure Apps and Services

bull Other platforms

WWWCOLLAB365EVENTS

SharePoint integration in Yammer

bull Yammer Web Partndash Discontinued and stopped working on September 15th 2015

(httpgooglk2LuSs)

bull Yammer Embedndash Microsoftrsquos single solution to integrate Yammer feeds into

SharePoint

bull Other options as document and list integration federated search activity streams single sign-on admin configurationsndash httpsupportmicrosoftcomkb2835453

WWWCOLLAB365EVENTS

SharePoint Add-ins explainedAdd-in

Web

On-

premises

SharePoint

Add-in

Web

SharePoint

Online

Parent Web

(Host)

App Web

Add-in runs on local web server

or in the cloud

High trust is needed

Add-in runs on local web server

or in the cloud

Provider-hosted

SharePoint Add-inThe add-in runs in a separate host

Or as a service Use your own

Choice of server hosting

Architecture Code is allowed

SharePoint-Hosted Add-inCreation of isolated sub web on a parent web

Contains only web elements

Examples are lists out-of-the box Web Parts

No server code allowed only client JavaScript for logic and UX

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 9: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

VersionsBasic

(Freemium)Enterprise

(paid)

Basic Yammer Features X X

Collaboration Features X X

Yammer Mobile X X

Apps X X

Admin Tools X

Network level Apps and integration X

Support and Services X

WWWCOLLAB365EVENTS

Roles and rights

bull More informationndash httpwwwcollabshowcom20140106yammer-roles-permissions-drill-

down

Member All users are at least a member of the Yammer network Ability to use yammer

Group admin The person who created a group becomes the group admin of that group It allows to add and remove members from that group

Network admin admin This role manages the network This requires a ldquopaidrdquo network

Verified admin The role has all the abilities and is sometimes called the one with ldquoGodrdquo rights This requires a ldquopaidrdquo network

WWWCOLLAB365EVENTS

Integration with Yammer

WWWCOLLAB365EVENTS

Integration possibilities

bull SharePoint add-ins ndash On-premises or online

bull Office 365

bull Office add-ins

bull Azure Apps and Services

bull Other platforms

WWWCOLLAB365EVENTS

SharePoint integration in Yammer

bull Yammer Web Partndash Discontinued and stopped working on September 15th 2015

(httpgooglk2LuSs)

bull Yammer Embedndash Microsoftrsquos single solution to integrate Yammer feeds into

SharePoint

bull Other options as document and list integration federated search activity streams single sign-on admin configurationsndash httpsupportmicrosoftcomkb2835453

WWWCOLLAB365EVENTS

SharePoint Add-ins explainedAdd-in

Web

On-

premises

SharePoint

Add-in

Web

SharePoint

Online

Parent Web

(Host)

App Web

Add-in runs on local web server

or in the cloud

High trust is needed

Add-in runs on local web server

or in the cloud

Provider-hosted

SharePoint Add-inThe add-in runs in a separate host

Or as a service Use your own

Choice of server hosting

Architecture Code is allowed

SharePoint-Hosted Add-inCreation of isolated sub web on a parent web

Contains only web elements

Examples are lists out-of-the box Web Parts

No server code allowed only client JavaScript for logic and UX

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 10: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Roles and rights

bull More informationndash httpwwwcollabshowcom20140106yammer-roles-permissions-drill-

down

Member All users are at least a member of the Yammer network Ability to use yammer

Group admin The person who created a group becomes the group admin of that group It allows to add and remove members from that group

Network admin admin This role manages the network This requires a ldquopaidrdquo network

Verified admin The role has all the abilities and is sometimes called the one with ldquoGodrdquo rights This requires a ldquopaidrdquo network

WWWCOLLAB365EVENTS

Integration with Yammer

WWWCOLLAB365EVENTS

Integration possibilities

bull SharePoint add-ins ndash On-premises or online

bull Office 365

bull Office add-ins

bull Azure Apps and Services

bull Other platforms

WWWCOLLAB365EVENTS

SharePoint integration in Yammer

bull Yammer Web Partndash Discontinued and stopped working on September 15th 2015

(httpgooglk2LuSs)

bull Yammer Embedndash Microsoftrsquos single solution to integrate Yammer feeds into

SharePoint

bull Other options as document and list integration federated search activity streams single sign-on admin configurationsndash httpsupportmicrosoftcomkb2835453

WWWCOLLAB365EVENTS

SharePoint Add-ins explainedAdd-in

Web

On-

premises

SharePoint

Add-in

Web

SharePoint

Online

Parent Web

(Host)

App Web

Add-in runs on local web server

or in the cloud

High trust is needed

Add-in runs on local web server

or in the cloud

Provider-hosted

SharePoint Add-inThe add-in runs in a separate host

Or as a service Use your own

Choice of server hosting

Architecture Code is allowed

SharePoint-Hosted Add-inCreation of isolated sub web on a parent web

Contains only web elements

Examples are lists out-of-the box Web Parts

No server code allowed only client JavaScript for logic and UX

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 11: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Integration with Yammer

WWWCOLLAB365EVENTS

Integration possibilities

bull SharePoint add-ins ndash On-premises or online

bull Office 365

bull Office add-ins

bull Azure Apps and Services

bull Other platforms

WWWCOLLAB365EVENTS

SharePoint integration in Yammer

bull Yammer Web Partndash Discontinued and stopped working on September 15th 2015

(httpgooglk2LuSs)

bull Yammer Embedndash Microsoftrsquos single solution to integrate Yammer feeds into

SharePoint

bull Other options as document and list integration federated search activity streams single sign-on admin configurationsndash httpsupportmicrosoftcomkb2835453

WWWCOLLAB365EVENTS

SharePoint Add-ins explainedAdd-in

Web

On-

premises

SharePoint

Add-in

Web

SharePoint

Online

Parent Web

(Host)

App Web

Add-in runs on local web server

or in the cloud

High trust is needed

Add-in runs on local web server

or in the cloud

Provider-hosted

SharePoint Add-inThe add-in runs in a separate host

Or as a service Use your own

Choice of server hosting

Architecture Code is allowed

SharePoint-Hosted Add-inCreation of isolated sub web on a parent web

Contains only web elements

Examples are lists out-of-the box Web Parts

No server code allowed only client JavaScript for logic and UX

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 12: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Integration possibilities

bull SharePoint add-ins ndash On-premises or online

bull Office 365

bull Office add-ins

bull Azure Apps and Services

bull Other platforms

WWWCOLLAB365EVENTS

SharePoint integration in Yammer

bull Yammer Web Partndash Discontinued and stopped working on September 15th 2015

(httpgooglk2LuSs)

bull Yammer Embedndash Microsoftrsquos single solution to integrate Yammer feeds into

SharePoint

bull Other options as document and list integration federated search activity streams single sign-on admin configurationsndash httpsupportmicrosoftcomkb2835453

WWWCOLLAB365EVENTS

SharePoint Add-ins explainedAdd-in

Web

On-

premises

SharePoint

Add-in

Web

SharePoint

Online

Parent Web

(Host)

App Web

Add-in runs on local web server

or in the cloud

High trust is needed

Add-in runs on local web server

or in the cloud

Provider-hosted

SharePoint Add-inThe add-in runs in a separate host

Or as a service Use your own

Choice of server hosting

Architecture Code is allowed

SharePoint-Hosted Add-inCreation of isolated sub web on a parent web

Contains only web elements

Examples are lists out-of-the box Web Parts

No server code allowed only client JavaScript for logic and UX

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 13: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

SharePoint integration in Yammer

bull Yammer Web Partndash Discontinued and stopped working on September 15th 2015

(httpgooglk2LuSs)

bull Yammer Embedndash Microsoftrsquos single solution to integrate Yammer feeds into

SharePoint

bull Other options as document and list integration federated search activity streams single sign-on admin configurationsndash httpsupportmicrosoftcomkb2835453

WWWCOLLAB365EVENTS

SharePoint Add-ins explainedAdd-in

Web

On-

premises

SharePoint

Add-in

Web

SharePoint

Online

Parent Web

(Host)

App Web

Add-in runs on local web server

or in the cloud

High trust is needed

Add-in runs on local web server

or in the cloud

Provider-hosted

SharePoint Add-inThe add-in runs in a separate host

Or as a service Use your own

Choice of server hosting

Architecture Code is allowed

SharePoint-Hosted Add-inCreation of isolated sub web on a parent web

Contains only web elements

Examples are lists out-of-the box Web Parts

No server code allowed only client JavaScript for logic and UX

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 14: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

SharePoint Add-ins explainedAdd-in

Web

On-

premises

SharePoint

Add-in

Web

SharePoint

Online

Parent Web

(Host)

App Web

Add-in runs on local web server

or in the cloud

High trust is needed

Add-in runs on local web server

or in the cloud

Provider-hosted

SharePoint Add-inThe add-in runs in a separate host

Or as a service Use your own

Choice of server hosting

Architecture Code is allowed

SharePoint-Hosted Add-inCreation of isolated sub web on a parent web

Contains only web elements

Examples are lists out-of-the box Web Parts

No server code allowed only client JavaScript for logic and UX

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 15: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

What are the possibilitiesbull Embedding code directly on Page

ndash Publishing Page Content Page Any Page

bull Your own custom ndash Web Partndash User Control

bull SharePoint Add-insndash SharePoint hosted Add-inndash Provider-hosted SharePoint Add-in

bull Azure Apps and Servicesndash Coding based on NET JavaScript or other

language at your choice

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 16: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Best practices - APIs

Embed code on page

User Control

Web PartSharePoint-Hosted Add-

in

SharePoint Provider-

Hosted Add-in

Azure Apps Service

Otherplatforms

Yammer Embed

Yes Yes Yes

Yes with someexceptions as

like follow and commenting

No YesYes if

JavaScript is possible

Yammer JS SDK

No Yes Yes Yes No Yes

Yes ifJavaScript is

possible

REST API NoYes using NET code

Yes using NET code

Yes only through

JavaScript calls

Yes using NET code

Yes

Yes mostlythrough

Javascript calls

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 17: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Yammer API

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 18: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Yammer API overviewbull Documentation

ndash Documentation got a lot betterndash httpdeveloperyammercomdocumentation

bull Available APIsndash REST APIndash JavaScript SDKndash Other SDKs for iOS Windows Phone 8

Ruby and Python

bull Widgets with Yammer Embedbull Yammer uses the Open Graph protocol for activities

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegt

bull Data returned as JSON

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 19: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Register a Yammer Appbull App registration

ndash Go to httpswwwyammercomclient_applications and register an Appndash Register an App for testing

bull What do you get backndash Client ID = 8LIaFJoKeMB6SjDg3nI1LAndash Client Secret = dXHDf0hGYG0I268rtgn

JNUaq8jFJokEUqelVHKKwg

bull Define a redirect URLndash Expected Redirect = httpwwwyammercom

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 20: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

DEMO

Register a Yammer App

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 21: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Registration of a Yammer App

ndash Use it for creating a test app to work on

bull Publishing for use by others

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 22: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

REST API

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 23: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

REST API

bull REST interface to Yammer resourcesndash Interface is mostly used by other APIs when accessing data

bull Before accessing REST APIndash Register an App at Yammerndash Your App needs to authenticate a Yammer user through OAuth 2

bull Call REST API endpoints with an access tokenbull Documentation

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsndash Each function has a ldquoTry outrdquo

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 24: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Authenticate ndash OAuth flows

bull Server-Side flowndash Referred to as ldquoAuthorization Code Grantrdquondash Use whenever you call the Yammer API from your web

application server

bull Client-Side flowndash Referred to as ldquoImplicit Grantrdquondash Use whenever you need to make API calls from a client

such as JavaScript running in a web browser or from native mobile or desktop applications

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 25: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Yammer uses OAuth 2bull User Authentication and App Authorization

ndash httpswwwyammercomdialogoauthclient_id=LIaFJoKeMB6SjDg1LAampredirect_uri=httpwwwyammercom

ndash It requests to login and to authorize the App to use your data

bull After successful login and authorizing the app your are redirectedndash httpswwwyammercomportivanlcode=1U8BguaHAEJokENBsHO8wmcQ

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 26: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Authenticate ndash Server-Side flowbull Get your Access Token

ndash httpswwwyammercomoauth2access_tokenjsonclient_id=8daFanMJOkeB6SjDg31nI1LAampclient_secret=dXHD9f00I268rtgnJJokeNuUaq8j3tUqelVHKKwgampcode=o3Su14YEuowqSJokeCfg

ndash Access Token can be found in the returned JSON

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 27: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Authenticate ndash Client-Side flowbull Get your Access Token

ndash httpswwwyammercomdialogoauthclient_id=dIaFnMB6SJokEjg31nI1LAampredirect_uri=httpwwwyammercomampresponse_type=token

ndash Get access token from redirected URLndash httpswwwyammercomportivanlaccess_token=bl7qByjG0CgVag2OJokEc8w

bull Access token is valid for many years or longer

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 28: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

DEMO

Authentication

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 29: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Using REST API calls to authenticate an App

bull Explained the different dialog popups you get and when they are shown

bull Getting the access token

bull Explain the JSON payload returned

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 30: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

REST API - Resourcesbull Messages

ndash View messages like all my feed following private received

ndash Posting messages ndash Other like pending attachments email

messages view threads likes

bull Topics ()bull Groups

ndash Join and leave groups

bull Usersndash Retrieve view current user view user in

group suspend or delete

bull Relationshipsndash Show add and remove organizational

chart relationship

bull Notificationsndash Get from current user

bull Suggestionsndash View and decline suggestions

bull Subscriptionsndash Check subscribed to thread or userndash Subscribe and unsubscribe

bull Autocompletendash Returns suggestions

bull Invitationsbull Searchbull Networks

ndash List of networksndash Switch between network

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 31: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

REST API ndash Interesting endpointsEndpoints Parameters

Messageshttpswwwyammercomapiv1messagesjsonhttpswwwyammercomapiv1messagesfollowingjsonhttpswwwyammercomapiv1messagesprivatejson

older_thannewer_thanthreadedlimit

Usershttpswwwyammercomapiv1userscurrentjsonhttpswwwyammercomapiv1users[id]json

Relationships httpswwwyammercomapiv1relationshipsjson user_id

Notifications httpswwwyammercomapiv1streamsnotificationsjson

Search httpswwwyammercomapiv1searchjsonsearchpagenum_per_page

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 32: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

DEMO

REST API Call

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 33: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Demo ndash Round up

bull Use REST API to get information about the current user and messages

bull Explain about the JSON returned

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 34: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

REST API ndash Rate Limitsbull API calls are subject to rate limiting

bull Limits are per user per Appbull Limits are independently from each other in the same time periodbull More information

ndash httpsdeveloperyammercomdocsrest-api-rate-limitsrate-limits

Requests in Seconds

Messages 10 30

Notifications 10 30

Autocomplete 10 10

All other resources 10 10

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 35: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

JavaScript SDK

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 36: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

JavaScript SDKbull Allows you to authenticate users and access Yammer through some

wrapperbull Newest version released on April 7th 2014

ndash New security features to enhance login techniques

bull Using JavaScript is easy

bull Use httpsc64assets-yammercomassetsplatform_js_sdkjsbull Enter your Yammer App ID in the data-app-id parameter

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 37: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

JavaScript SDK - Authenticate

bull Authentication is handled for you

bull A cool Yammer login button

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 38: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

JavaScript SDK ndash Access databull Make calls directly to the

Yammer REST APIndash Use yamplatformrequest

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 39: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Yammer Embed

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 40: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Yammer Embedbull A set of widgets to quickly create Yammer implementationsbull Not many customizations possiblebull Widgets like Specified feeds Open Graph feeds Action buttons and

Commentingbull Widget is block of script placed in

ndash Content Editor Web Partndash Pagendash SharePoint Hosted Add-in

bull Needs a HTML Container 400 pixels or larger in your applicationbull Documentation

ndash httpsdeveloperyammercomdocsembed

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 41: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Yammer Embed ndash Script generatorbull Embed script generation

ndash httpswwwyammercomwidgetconfigure

bull Type of feeds

ndash Group Open Graph User Topics My feed

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 42: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Yammer Embed ndash Single Sign-Onbull Support for Single Sign On

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 43: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Yammer Embed ndash Open Graph buttons

bull Enables social interaction with systems like blog posts content pages and other content

bull It uses Open Graph objects

bull Like buttonndash ltusergt likes ltobjectgtndash Bound to the URL of the object

bull Follow buttonndash ltusergt follows ltobjectgtndash Bound to the URL of the object

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 44: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Yammer Embed - Commentingbull Actually a Feed widget of the type ldquoOpen Graphrdquobull Can be used as commenting system for internal blogs or any line of

business application

bull OG Object is created by the first user using itbull URL and OG metadata of page is usedbull Other properties like header footer prompt text and more

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 45: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Open Graph

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 46: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Open Graphbull Is a light weight data integration protocolbull Activities are posted as OG Objectsbull Format

ndash ltActorgt ltActiongt ltObjectgt on ltApp Namegt ltMessagegtndash Eg Alexander created Company meeting on YammerTestAppForPortiva Lets meet

bull Description

Actor A Yammer user

Action A verb describing what happens Eg created updated deleted liked followedCreate your own verbs per App on yammercom

Object Represents an instance in your App and are uniquely identified Supported are place person department team project folder file document image audio video and company

App Name Name of your App doing the post

Message The message shown

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 47: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Open Graph - Custom

bull Create your own objects and verbsbull Define a namespacebull Object Type

ndash Singular formndash Plural form

bull Action typesndash Present tensendash Past tense

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 48: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Open Graph - Custombull An Open Graph Object is posted through the activity endpoint

ndash httpswwwyammercomapiv1activityjson

bull Example JSON payload

activity

actornameldquoAlexander Meijers

emailldquoameijersportivanl

actioncreate object

urlldquohttpwwwyammercom

titleldquoCorporate Meeting

messageldquoLets meet

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 49: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Yammer and NET

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 50: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

YammerNETbull A way to use Yammer APIs in NET applications

ndash Based on the NET classes of Steve Peschkahttpblogstechnetcombspeschkaarchive20131005using-the-yammer-api-in-a-net-client-applicationaspx

bull Connecting to Yammerndash Authentication through REST API calls by using WebRequest callsndash Setting the cookies (yamtrak_id and _workfeed_session_id)

bull Serializing JSON data through NET classesbull Access it from

ndash Console applicationndash Provider hosted App in SharePoint 2013

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 51: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Takeaways amp round upbull Documentation is nowadays better bull The REST part is enough to create rich implementationsbull Use access token to use yammer APIs on behalf of an user Valid for

yearsbull Use Yammer Embed to create Yammer implementations quickly and

with an easebull Open Graph allows you to create your own objects within your

yammer implementationbull Using NET building Yammer Apps is great Especially with an

YammerNET Library

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip

Page 52: Build your own yammer app @ Collab365

WWWCOLLAB365EVENTS

Stay tuned for more great sessions hellip