我还没有在网上找到关于如何利用服务器对象模型的SharePoint 2013社交部分的大量信息。为了更好地理解和关注我的问题,我建议你去看看{ {3}}
让我们说我有一个功能接收器,当我创建某个网站时会被触发,我想利用Follow Content
功能,但不是每次创建一个网站我想让这个人创建该网站会自动关注该网站。
有没有人有使用SharePoint 2013中的社交功能的经验?如果是这样,总结如何使用不同的社交方法将是非常棒的。
社交演员
从我从阅读中了解到的这一点,你需要创建一个"演员"代表该项目或在我的情况下代表该网站。 SocialActorInfo
获取属性ContentUri和ActorType。
SocialActorInfo actorInfo = new SocialActorInfo();
actorInfo.ContentUri = contentUrl;
actorInfo.ActorType = contentType;
查找并检查当前用户是否跟有该
然后你必须检查当前用户是否跟随SocialActor。
ClientResult<bool> isFollowed = followingManager.IsFollowed(actorInfo);
关注/取消关注网站/项目
ClientResult<SocialFollowResult> result = followingManager.Follow(actorInfo);
clientContext.ExecuteQuery();
"followingManager.UnFollow(actorInfo);"
问题,
如果我想关注某个网站,那里有哪种ActorType?
如何使用服务器端代码执行此操作?
其他信息
Microsoft说:当用户关注文档,网站或标签时,文档中的状态更新,网站上的会话以及标记使用的通知都会显示在他们的新闻源中。可以在新闻源和以下内容页面上看到与以下内容相关的功能。
SharePoint Server 2013提供了以下API,您可以使用这些API以编程方式关注内容:
site,我可以找到如何使用REST或CSOM。
答案 0 :(得分:1)
只想分享,这就解决了这个任务。
只是一个采用SPWeb对象和SPUser对象的Follow方法。
SPServiceContext serverContext = SPServiceContext.GetContext(web.Site);
UserProfileManager profileManager = new UserProfileManager(serverContext);
string userString = user.LoginName.ToString();
UserProfile userProfile = profileManager.GetUserProfile(userString);
if (userProfile != null)
{
SPSocialFollowingManager manager = new
SPSocialFollowingManager(userProfile);
SPSocialActorInfo actorInfo = new SPSocialActorInfo();
actorInfo.ContentUri = new Uri(web.Url);
actorInfo.AccountName = user.LoginName;
actorInfo.ActorType = SPSocialActorType.Site;
manager.Follow(actorInfo);
}