В SharePoint 2013 CSOM есть недокументированная возможность установить Like для любого элемента списка или библиотеки Javascript’ом.
Сама возможность лайкать включается тут: Параметры списка (List Settings) -> Параметры оценок(Rating settings).
Код для установки лайка, для тестирования я добавлял его в Content Query Web Part:
<script type="text/javascript">
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', UpdateLike);
function UpdateLike() {
var itemId = 1;
var listId = "B79D49E4-334D-42F3-8E43-5E7CB8ABCDD0";
var setLike = true;
var ctx = new SP.ClientContext("<yourSiteUrl>");
Microsoft.Office.Server.ReputationModel.Reputation.setLike(ctx, listId, itemId, setLike);
ctx.executeQueryAsync(Function.createDelegate(this, this.RatingSuccess), Function.createDelegate(this, this.RatingFailure));
};
function RatingSuccess(sender, args) {
alert('Rating Done Successfully');
}
function RatingFailure(sender, args) {
alert('SetRating failed:' + args.get_message());
}
</script>
У меня не получилось подключить скрипт Reputation.js через предназначенную для этого SP.SOD.executeFunc. Поэтому я подключил его обычным тегом script. Основной код содержится в функции UpdateLike. Его можно вызывать по клику на кнопку.
Основная идея взята тут: https://coderwall.com/p/urb8kg/custom-like-button-in-sharepoint-2013
Отдельное спасибо моему коллеге Алексею из Лаборатории Касперского за помощь в поиске решения задачи!
1 ответ к “Кнопка для установки лайка в SharePoint 2013 через JS”
Evgenii Vilkov 11.02.2015 в 16:59: Делал пример для SPTypeScript Definitions, там и правильный executeFunc есть:)