SharePoint 2013中新增了很多社交功能,比如用户可以like/unlike 任何一个 list item/page/document,这是一个非常不错的功能。

但有时觉得like/unlike按钮不是很好看,希望用自己的按钮,就需要用JavaScript代码来 Like 和Unlike list item/page/document。

或者在非本级站点客户化显示blog列表等,也需要用JavaScript代码来 Like 和Unlike list item/page/document。

为了实现这个功能,笔者先是尝试直接修改LikesCount 和 LikedBy  , 但是这样做不能从 _api/social.feed/my/Feed中看到动态,这样显然不能达到社交的要求,也尝试过用

             clientContext = SP.ClientContext.get_current();
feedManager = new SP.Social.SocialFeedManager(clientContext);
feedManager.likePost('6162164E-5542-4530-9E7B-F3EF4A05D562');
clientContext.executeQueryAsync(LikeSucceeded, LikeFailed);

但是问题是likePost里面的参数是Socail Thread ID,一般的列表项是没有的。

后来笔者发现了:

http://msdn.microsoft.com/en-us/library/microsoft.office.server.reputationmodel.reputation.setlike.aspx

再通过摸索,笔者找到下面的正确方案(请确保页面引用了/_layouts/15/reputation.js):

		EnsureScriptFunc('reputation.js', 'Microsoft.Office.Server.ReputationModel.Reputation', function () {
var aContextObject = new SP.ClientContext(); // 此处如果不是当前网站,需要相对或绝对地址作为参数,如: /blog
Microsoft.Office.Server.ReputationModel.
Reputation.setLike(aContextObject,
listGuid, // 列表的Guid, 如:EDBA153B-7EBB-4242-B842-FCA6E233E11F
itemIntId, // Item的整数id  例如: 1
false); // Like 为true, unlike 为false
aContextObject.executeQueryAsync(
function () {
// Do something if successful
}, function (sender, args) {
// Do something if error
});
});

例1 like/unlike当前页面

EnsureScriptFunc('reputation.js', 'Microsoft.Office.Server.ReputationModel.Reputation', function () {
Microsoft.Office.Server.ReputationModel.
Reputation.setLike(aContextObject,
_spPageContextInfo.pageListId.substring(1, 37),
_spPageContextInfo.pageItemId, false); aContextObject.executeQueryAsync(
function () {
// Do something if successful
}, function (sender, args) {
// Do something if error
});
});

例2 like/unlike blog子网站的某个帖子

EnsureScriptFunc('reputation.js', 'Microsoft.Office.Server.ReputationModel.Reputation', function () {
var aContextObject = new SP.ClientContext('/blog'); // 初始化一个blog 子站点的上下文
Microsoft.Office.Server.ReputationModel.Reputation.setLike(
aContextObject,
'EDBA153B-7EBB-4242-B842-FCA6E233E11F', //  blog子网站下posts列表的Guid
1, // posts 列表中item的整数id
false); aContextObject.executeQueryAsync(function () {
alert('like successed');
}, function (sender, args) {
alert('like failed');
});
});

SharePoint 2013 中使用 JavaScript Like 和Unlike list item/page/document的更多相关文章

  1. [MSDN] 使用 SharePoint 2013 中的 JavaScript 库代码完成基本操作

    MSDN:http://msdn.microsoft.com/zh-cn/library/jj163201.aspx 了解如何编写代码以在 SharePoint 2013 中使用 JavaScript ...

  2. SharePoint 2013中以其他用户身份登录的WebPart(免费下载)

    在SharePoint 2013中微软并没有提供在SharePoint 2010中以其他用户身份登录的菜单,这对一般用户影响不大,但对于系统管理员或测试人员或特定人员(如在OA系统中的文员或秘书,常常 ...

  3. SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)

    前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真正的大型项目中经受住了考验:.Net版SAP RFC适配器组件和SharePoint 2013修改AD ...

  4. SharePoint 2013中规划企业搜索体系结构

    摘要:了解如何规划小型.中型或大型企业搜索体系结构. 设置企业搜索体系结构之前,需要仔细规划很多事项.我们将逐步帮助您规划小型.中型或大型企业搜索体系结构. 您是否熟悉 SharePoint 2013 ...

  5. SharePoint 2013中的爬网最佳做法

    了解在 SharePoint Server 2013 中爬网的最佳做法 搜索系统对内容进行爬网,以构建一个用户可以对其运行搜索查询的搜索索引.本文包含有关如何最有效地管理爬网的建议. 本文内容: 使用 ...

  6. SharePoint 2013 中自定义WCF服务

    在使用SharePoint2013的时候,如果其他客户端 API 的组合不足,可以通过自定义 Web 服务扩展 SharePoint.默认情况下,SharePoint 2013 不仅支持创建自定义 A ...

  7. 在 SharePoint 2013 中配置 Office Web Apps

    原文发布于 2012 年 7 月 23 日(星期一) 如您所知或您即将知道,SharePoint 2013 中的 Office Web Apps 不再是 SharePoint 场中的服务应用程序.相反 ...

  8. 在SharePoint解决方案中使用JavaScript (2) – 模块化

    本文是在SharePoint中使用JavaScript的第二篇文章,前面的文章包括: 在SharePoint解决方案中使用JavaScript (0) 在SharePoint解决方案中使用JavaSc ...

  9. 在SharePoint解决方案中使用JavaScript (1) – 引用.js文件

    本文是系列文章的第一篇. 在SharePoint解决方案中使用JavaScript (0) 作为在SharePoint应用程序中使用JavaScript的第一步,就是要知道如何将一个写好的.js文件, ...

随机推荐

  1. selenium + python 多浏览器测试

    selenium + python 多浏览器测试 支持库包 在学习 Python + Selenium 正篇之前,先来看下对多浏览器模拟的支持.目前selenium包中已包含webdriver,hel ...

  2. boost的link 和 runtime-link,搭配shared 和 static

    转自:http://blog.csdn.net/yasi_xi/article/details/8660549 link:生成动态链接库/静态链接库.生成动态链接库需使用shared方式,生成静态链接 ...

  3. ubuntu 挂起唤醒和声音偏小的问题

    自从开始用ubuntu就遇到了声音偏小的问题,一直很让我头疼.还好插上耳机后勉强能用,也就没继续追究了. 可最近发现了一个更加严重的问题挂起后竟然无法唤醒,一直是黑屏的状态,必须强制关机再重启,这就蛋 ...

  4. Jquery图片随滚动条加载

    很久以前的写的Jquery图片随滚动条加载,现在不是什么新技术,应用也很广泛,大大提高图片多的页面打开速度! 有需要的朋友看看吧!有什么意见或建议欢迎留言交流! Demo.html  源码: < ...

  5. Java正则表达式获取网页所有网址和链接文字

    ;         pos1= urlContent.indexOf(strAreaBegin)+strAreaBegin.length();         pos2=urlContent.inde ...

  6. Slideout吐槽

    前言: 今天有点事,只尝试做一个侧边栏.SlideOut一个侧边栏,对着github,ReadMe看,并尝试着写了.还不错,关键是当与bootstrap一起时,什么效果都没了, 这是什么情况,明天想再 ...

  7. xdebug初步

    ;加载xdebug模块. 根据PHP版本来选择是zend_extension还是zend_extension_ts  ts代表线程安全  被坑过1次zend_extension="\web\ ...

  8. C#修改下拉框选项的高度

    重写ListBox.DrawItem事件处理,别忘记将ListBox.DrawMode 设置为OwnerDrawVariable,ListBox.ItemHeight值改大一点,字体也适当放大一号. ...

  9. FIREDAC FDConnection 连接池 连接串

    一.FDConnection 连接池 http://docs.embarcadero.com/products/rad_studio/firedac/frames.html?frmname=topic ...

  10. axis1调用方式

    axis http://10.15.22.28/itfmgr/services/ITaxManagement?wsdl package com.isoftstone.core.service.impl ...