Мне нужно добавить пользовательские уведомления в личный Newsfeed на MySite пользователя. Я нашел несколько руководств и примеров кода для SharePoint 2010 в сети и попытался сделать то же самое с SharePoint 2013. Они все о создании ActivityEvents
с ActivityManager
.Событие активности SharePoint 2013 в Newsfeed
Вот код, который я попробовал:
var targetSite = new SPSite("URL to MySite webapp");
SPServiceContext context = SPServiceContext.GetContext(targetSite);
var userProfileManager = new UserProfileManager(context);
var ownerProfile = userProfileManager.GetUserProfile("domain\\user1");
var publisherProfile = userProfileManager.GetUserProfile("domain\\user2");
var activityManager = new ActivityManager(ownerProfile, context);
Entity publisher = new MinimalPerson(publisherProfile).CreateEntity(activityManager);
Entity owner = new MinimalPerson(ownerProfile).CreateEntity(activityManager);
ActivityEvent activityEvent = ActivityEvent.CreateActivityEvent(activityManager, 17, owner, publisher);
activityEvent.Name = "StatusMessage";
activityEvent.ItemPrivacy = (int)Privacy.Public;
activityEvent.Owner = owner;
activityEvent.Publisher = publisher;
activityEvent.Value = "HELLOOOO";
activityEvent.Commit();
ActivityFeedGatherer.BatchWriteActivityEvents(new List<ActivityEvent> { activityEvent }, 0, 1);
Идентификатор 17
в функции CreateActivityEvent
для типа StatusMessage
деятельности, которая layouted как {Publisher} says: {Value}
в Ressource файлов, так что я предоставить Value
свойство моего ActivityEvent
,
Код работает без каких-либо исключений, а в базе данных User Profile Service Application_ProfileDB
я вижу, что правильные записи отображаются в таблице ActivityEventsConsolidated
. Но активность не видна в фиде активности, ни на Владельца, ни на издателе, хотя эти люди следуют друг за другом. Я вручную выполнил задание Feed Feed в CA, чтобы обновить фид активности. Кроме того, я попытался сделать то же самое с пользовательским ActivityTypes
с собственными файлами ressource, тем же результатом: запись в таблице ActivityEventsConsolidated
(или ActivityEventsPublished
, если Owner = Publisher) появляется, но нет записей на MySite.
Может ли кто-нибудь помочь?
Вы можете получить больше удовольствия от этого, если вы переместите этот вопрос на сайт Sharepoint StackExchange. Это достаточно специфично, что ребята, с которыми вы хотите ответить на этот вопрос, болтаются там. – ghangas