SharePoint 2013 开发——其他社交功能
博客地址:http://blog.csdn.net/FoxDave
上一篇讲了如何获取用户配置文件的相关属性,它属于SharePoint 2013社交功能的一个小的构成部分。社交功能是SharePoint 2013改进的一大亮点。可以在现有网站上开启社交功能或者新建一个专门用于社交用途的社区网站,社交功能包括关注(人或内容)、艾特@、#等功能、有清晰的用户积分制度等等。由于工作中不会有太多关于这方面的开发需求,并且个人觉得这部分做得挺不错,基本的需求应该是够用了(强大的或许就不在SharePoint上了
),所以本篇只会用两个小例子展示一下如何用客户端对象模型与SharePoint社交功能进行交互来说明SharePoint 2013社交功能的开发,当然不仅限于客户端对象模型,JSOM和REST也可以做类似的事情。
包括之前提到的用户配置文件相关的开发,在用客户端对象模型做社交相关功能的代码交互开发时,需要引入Microsoft.SharePoint.Client、Microsoft.SharePoint.ClientRuntime和Microsoft.SharePoint.Client.UserProfiles这三个程序集,并在代码文件头部增加如下两个引用:
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.Social;
首先构建上下文对象:
ClientContext clientContext = new ClientContext("<你的网站URL>");
在Microsoft.SharePoint.Client.Social这个命名空间下,有SocialFeedManager、SocialFeedOptions、SocialPostCreationData和SocialFollowingManager等对象模型可供我们使用,分别跟订阅、回帖、关注等有关。
获取指定用户的动态:
SocialFeedManager feedManager = new SocialFeedManager(clientContext);
SocialFeedOptions feedOptions = new SocialFeedOptions();
feedOptions.MaxThreadCount = 10;
ClientResult<SocialFeed> feed = feedManager.GetFeedFor("<指定的用户>", feedOptions);
clientContext.ExecuteQuery();
for (int i = 0; i < feed.Value.Threads.Length; i++)
{
SocialThread thread = feed.Value.Threads[i];
string postText = thread.RootPost.Text;
Console.WriteLine("\t" + (i + 1) + ". " + postText);
}
获得指定用户关注和被关注的人:
static void Main(string[] args)
{
string serverUrl = "<你的网站URL>";
string targetUser = "<指定的用户>";
ClientContext clientContext = new ClientContext(serverUrl);
SocialFollowingManager followingManager = new SocialFollowingManager(clientContext);
SocialActorInfo actorInfo = new SocialActorInfo();
actorInfo.AccountName = targetUser;
ClientResult<int> followedCount = followingManager.GetFollowedCount(SocialActorTypes.Users);
ClientResult<SocialActor[]> followedResult = followingManager.GetFollowed(SocialActorTypes.Users);
ClientResult<SocialActor[]> followersResult = followingManager.GetFollowers();
clientContext.ExecuteQuery();
Console.WriteLine("当前用户关注的人数: ({0})", followedCount.Value);
IterateThroughPeople(followedResult.Value);
Console.WriteLine("\n谁关注此用户:");
IterateThroughPeople(followersResult.Value);
Console.ReadKey();
} static void IterateThroughPeople(SocialActor[] actors)
{
foreach (SocialActor actor in actors)
{
Console.WriteLine(" - {0}", actor.Name);
Console.WriteLine("\t链接: {0}", actor.PersonalSiteUri);
Console.WriteLine("\t头像: {0}", actor.ImageUri);
}
}
更多内容请参考微软MSDN文档,写得还是很详细清晰的,如果我们在工作中遇到了相关内容的任务,能够提供很有力的参考和帮助。
SharePoint 2013 开发——其他社交功能的更多相关文章
- SharePoint 2013 扩展查阅项功能
SharePoint 2013的查阅项功能,就是可以扩展其他列表字段为当前列表选项,但是选项太多的时候,会造成选择起来非常麻烦,所以,我们采取JS+Ajax的方式,改善一下这个展示,使操作更加方便. ...
- SharePoint 2013 开发——概述
博客地址:http://blog.csdn.net/FoxDave 近来阅读SharePoint 2013开发一书,带着与大家一起分享其中的内容. 部署场景: 本地部署(On-Premise D ...
- SharePoint 2013开发入门探索(二)- 列表操作
我们如何用代码对SharePoint列表做些例如增删改查的操作呢?如果您的程序可以部署到服务器上,就可以使用 服务器对象模型,因为服务器对象模型提供的功能最多,限制最少:否则可能要选择客户对象模型等其 ...
- SharePoint 2013开发入门探索(一)- 自定义列表
在SharePoint 2013中创建自定义列表的方式有很多,在网站内容页面添加应用程序就可以创建(站点内容-〉 您的应用程序),也可以通过SharePoint Designer 2013创建,而本文 ...
- SharePoint 2013 开发——搜索架构及扩展
博客地址:http://blog.csdn.net/FoxDave SharePoint 2013高度整合了搜索引擎,在一个场中只有一个搜索服务应用程序(SSA).它集成了FAST,只有一个代码库 ...
- SharePoint 2013 搜索爬网功能
最近在政府部门介绍SharePoint 2013 新功能,我也准备了很多,比如SharePoint 2013的Search.以后有机会谈谈Office Web App,Workflow等. Share ...
- SharePoint 2013 开发——开发并部署第一个APP
博客地址:http://blog.csdn.net/FoxDave 本篇我们开始对开发APP应用程序进行了解. 本篇基于本地SharePoint环境(如果是Office 365的话会方便许多),需 ...
- SharePoint 2013 开发——工作流架构
博客地址:http://blog.csdn.net/FoxDave SharePoint 2013的工作流较之前有了不同,第一次真正地作为独立的服务的概念推出了.这意味着SharePoint工作流不再 ...
- SharePoint 2013 开发教程
做了SharePoint有三年了,大家经常会问到,你的SharePoint是怎么学的,想想自己的水平,也不过是初级开发罢了.因为,SharePoint开发需要接触的东西太多了,Windows操作系统. ...
随机推荐
- 批处理命令——for
[1]for命令简介 先把for循环与for命令类比一下,这样学习理解快. for 循环语句,一般格式如下: for (表达式1;表达式2;表达式3) { 循环体; } 1. 表达式1 一般为初始状态 ...
- Java判断访问设备为手机、微信、PC工具类
package com.lwj.util; import javax.servlet.http.HttpServletRequest; /** * 判断访问设备为PC或者手机--工具类 * * @de ...
- C#对多个集合和数组的操作(合并,去重,判断)
在开发过程中.数组和集合的处理是最让我们担心.一般会用for or foreach 来处理一些操作.这里介绍一些常用的集合跟数组的操作函数. 首先举例2个集合A,B. List<int> ...
- Python之控制台输入密码的方法
一.raw_input()或input(): for python 2.x [root@master test]# /usr/local/python2.7/bin/python test.py Pl ...
- Internship-ZOJ2532(网络流求割边)
Internship Time Limit: 5 Seconds Memory Limit: 32768 KB CIA headquarter collects data from acro ...
- Python3基础 print 查看一个列表中存储的所有内容
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- 修改PHP 上传文件大小限制
Windows 环境下的修改方法 ================================================================第一步:修改在php5下POST文件大 ...
- matlab求解二元一次方程组的解得表达式
- qq2440启动linux后出现错误提示request_module: runaway loop modprobe binfmt-464c
1.情景: 编译busybox时加了make CROSS_COMPILE=arm-linux-,但是还是出现了此情况! 2.解决方案如下: 配置busybox时,在配置中发现busybox setti ...
- 深入浅出设计模式——职责链模式(Chain of Responsibility Pattern)
模式动机 职责链可以是一条直线.一个环或者一个树形结构,最常见的职责链是直线型,即沿着一条单向的链来传递请求.链上的每一个对象都是请求处理者,职责链模式可以将请求的处理者组织成一条链,并使请求沿着链传 ...