SharePoint 2013ではJavaScript LikeとUnike list item/page/documentを使用しています.


SharePoint 2013には、ユーザがlike/unlikeのいずれかのような多くの社交機能が追加されています. list item/page/documentは、非常に良い機能です.
でも、like/unlikeボタンはあまり綺麗ではないと思うことがあります.自分のボタンを使うなら、JavaScriptコードでLikeとUnike list item/page/documentを使う必要があります.
あるいは、非本級サイトの顧客化でブログリストを表示するなど、JavaScriptコードでLikeとUnike list item/page/documentを表示する必要があります.
この機能を実現するために、まずLikes Countと 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の中のパラメータはSocal Thread IDで、一般的なリスト項目はありません.
後に筆者が発見しました.
http://msdn.microsoft.com/en-us/library/microsoft.office.server.reputationmodel.reputation.setlike.aspx
また模索して、次の正しい案を見つけました.
 
		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');
    });
});