SharePoint 2013ではJavaScript LikeとUnike list item/page/documentを使用しています.
2885 ワード
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の中で動態を見て、このように明らかに社交の要求を達成することができなくて、同じく試したことがあります.
後に筆者が発見しました.
http://msdn.microsoft.com/en-us/library/microsoft.office.server.reputationmodel.reputation.setlike.aspx
また模索して、次の正しい案を見つけました.
でも、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');
});
});