Download presentation
Presentation is loading. Please wait.
Published byChester Turner Modified over 9 years ago
2
Integrating Yammer with SharePoint Alan Marshall and Rebecca Gordon @pomealan@bexkelleher
12
Page Title Career Training
14
yam.connect.loginButton('#yammer-login', function (resp) { if (resp.authResponse) { document.getElementById('yammer-login').innerHTML = 'Welcome to Yammer!'; } }); --------------------------------------------------------------------------------------------------------------------- yam.platform.request({ url: "users.json", method: "GET", data: { "letter": "a“ }, success: function (user) { alert("The request was successful."); } });
19
var restUrlEmail = string.Format("https://www.yammer.com/api/v1/users/by_email.json?email={0}", email); YammerUser yammerUser = null; var yammerUserResult = ConnectionHelper.MakeGetRequest(restUrlEmail, SettingsHelper.AuthenticationToken); List yammerUsers = new JavaScriptSerializer().Deserialize >(yammerUserResult); if (yammerUsers.Any()) { yammerUser = yammerUsers.First(); } string impToken = string.Empty; var url = string.Format( "https://www.yammer.com/api/v1/oauth/tokens.json?user_id={0}&consumer_key={1}", yammerUser.id, SettingsHelper.ClientId); string tokenInfo = ConnectionHelper.MakeGetRequest(url, SettingsHelper.AuthenticationToken); var tokens = new JavaScriptSerializer().Deserialize >(tokenInfo); impToken = tokens[0].token;
24
YammerConfig.embedCommentHtmlSelector = '#yammer-embed-comment'; YammerConfig.newsGroupId = '6201947'; var pageUrl = document.URL; require(['https://assets.yammer.com/assets/platform_embed.js'], function() { yam.connect.embedFeed({ container: YammerConfig.embedCommentHtmlSelector, network: networkUrl, feedType: 'open-graph', objectProperties: { url: pageUrl, type: "page", title: pageTitle, description: pageDescription }, config: { defaultGroupId: newsGroupId, promptText: "Start a discussion about this news, or reply to someone below", use_sso: true } });
28
Yammer.yammerMainCommentId= listItem.get_item('YammerMessageId'); configureLike : function() { $.ajax({ url: YammerConfig.providerUrl + '/api/yammermessage/likedmessage/' + Yammer.yammerMainCommentId, type: 'GET', }).done(function (data) { $("#yammer-like").append($(" ").text('Likes: ')).append($(" ").attr('id', 'yammer-like-counter').text(data)).append($(" ").hide().attr('id', 'yammer-like-button').append($(" ").text('Like')).click(function () { $.ajax({ contentType: 'application/json', url: YammerConfig.providerUrl + '/api/yammermessage/likemessage', type: 'POST', data: JSON.stringify( { 'email': Yammer.userEmail, 'id': Yammer.yammerMainCommentId })
33
string impToken = null; try { impToken = AuthenticationHelper.GetImpersonatedToken(clientContext); // GRABS CURRENT USERS IMPERSONATION TOKEN } catch (ArgumentException e) { ViewBag.Message = string.Format(" {0} ", e.Message); return View(); } if (impToken != null) { using (var impersonatedClient = new Client(impToken)) { var messagesTask = impersonatedClient.Messages.GetByTopicId(yammerTopicId); var messages = await messagesTask.ConfigureAwait(false); var html = messages.Meta.YModules[0].InlineHtml; ViewBag.Message = html; ViewBag.ImpToken = impToken; }
34
In SharePoint fashion – play around until you find a way that works
35
ApproachProCon EmbedEasy for end user to add to page No impersonation Limited to Topics, Groups and Minimal interface changes Need to sign into Yammer Limited visual skinning APP using Client Side JSWork with full Yammer API No impersonation Customise some look and feel User has to trust your APP Must sign in each session Provider hosted APPNo end user APP trust required Can impersonate users Similar to APP security model Can change look and feel Custom developed solution Security managed in APP Hosting solution such as Azure web sites Not all API calls are implemented (use undocumented with caution )
41
Ten things every Office 365 Developer should know [M335] Elliott (Crowne Plaza) Wed 2 Sept, 4:30 PM SharePoint deployment automation with PowerShell Desired State Configuration [M388] Elliott (Crowne Plaza) Wed 2 Sept, 3:10 PM Application Lifecycle Management for SharePoint and Office365 app development Elliott (Crowne Plaza) Thu 3 Sept, 3:10 PM Find me later at… Lunch (Now) Hub Happy Hour Wed 5:30-6:30pm Hub Happy Hour Thu 5:30-6:30pm Closing drinks Fri 3:00-4:30pm 1 2 3
43
Subscribe to our fortnightly newsletter http://aka.ms/technetnz http://aka.ms/msdnnz http://aka.ms/ch9nz Free Online Learning http://aka.ms/mva Sessions on Demand
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.