Мне нужно добавить настраиваемые уведомления в личную ленту новостей на личных сайтах людей. Я нашел в сети несколько руководств и примеров кода для SharePoint 2010 и попытался сделать то же самое с SharePoint 2013. Все они посвящены созданию ActivityEvents
с помощью ActivityManager
.
Вот код, который я пробовал:
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
, который в файлах ресурсов расположен как {Publisher} says: {Value}
, поэтому я предоставляю свойство Value
моего ActivityEvent
.
Код выполняется без каких-либо исключений, и в базе данных User Profile Service Application_ProfileDB
я вижу, что правильные записи появляются в таблице ActivityEventsConsolidated
. Но активности не видно в ленте активности, ни у Владельца, ни у Издателя, хотя эти люди подписаны друг на друга. Я запустил задание ленты активности в ЦС вручную, чтобы обновить ленту активности. Кроме того, я попытался сделать то же самое с пользовательскими ActivityTypes
с собственными файлами ресурсов, тот же результат: запись в таблице ActivityEventsConsolidated
(или ActivityEventsPublished
, если владелец = издатель) появляется, но нет записей на личном сайте.
Кто-нибудь может помочь?