var mentionsArray = [];
var mentionsCount;
// Ensure that the SP.UserProfiles.js file is loaded before the custom code runs.
SP.SOD.executeOrDelayUntilScriptLoaded(GetFeeds, 'SP.UserProfiles.js');
// Declare global variables.
var clientContext;
var feedManager;
var mentionsFeed;
function GetFeeds() {
// Initialize the current client context and the SocialFeedManager instance.
clientContext = SP.ClientContext.get_current();
feedManager = new SP.Social.SocialFeedManager(clientContext);
// Set parameters for the feed content that you want to retrieve.
var feedOptions = new SP.Social.SocialFeedOptions();
feedOptions.set_maxThreadCount(10); // default is 20
// Change the sort order to optimize the Timeline feed results.
feedOptions.set_sortOrder(SP.Social.SocialFeedSortOrder.byCreatedTime);
mentionsFeed = feedManager.getMentions(false, feedOptions); //do not clear unread mentions
clientContext.load(feedManager);
clientContext.executeQueryAsync(CallIterateFunctionForFeeds, RequestFailed);
}
function CallIterateFunctionForFeeds() {
IterateThroughFeed(mentionsFeed);
// Later mentionsArray will be boud by using Knockout.js ;)
var viewModel = new AppViewModel();
ko.applyBindings(viewModel);
}
function IterateThroughFeed(feed) {
var feedOwner = feedManager.get_owner().get_name();
// Iterate through the array of threads in the feed.
var threads = feed.get_threads();
mentionsCount = feed.get_unreadMentionCount();
for (var i = 0; i < threads.length ; i++) {
var thread = threads[i];
var actors = thread.get_actors();
// Use mentions. (SocialThreadType.mentionReference)
if (thread.get_threadType() == 3) {
// Get the root post's author, content, and number of replies.
var post = thread.get_rootPost();
var authorName = actors[post.get_authorIndex()].get_name();
var postContent = post.get_text();
var postReference = thread.get_postReference();
var referencedPost = postReference.get_post();
var mentionText = referencedPost.get_text();
var url = thread.$2c_1; //reverse engineered this name
mentionsArray.push({ text: postContent + " " + mentionText, url: url });
}
}
}
function RequestFailed(sender, args) {
//not implemented
}