Presentation is loading. Please wait.

Presentation is loading. Please wait.

Integrating Yammer with SharePoint Alan Marshall and Rebecca Gordon

Similar presentations


Presentation on theme: "Integrating Yammer with SharePoint Alan Marshall and Rebecca Gordon"— Presentation transcript:

1

2 Integrating Yammer with SharePoint Alan Marshall and Rebecca Gordon @pomealan@bexkelleher

3

4

5

6

7

8

9

10

11

12 Page Title Career Training

13

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."); } });

15

16

17

18

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;

20

21

22

23

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 } });

25

26

27

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 })

29

30

31

32

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 )

36

37

38

39

40

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

42

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

44

45


Download ppt "Integrating Yammer with SharePoint Alan Marshall and Rebecca Gordon"

Similar presentations


Ads by Google