使用 SharePoint 中的社交源

了解在 SharePoint 中使用社交源和微博帖子所需执行的常见编程任务。

用于在 SharePoint 中使用社交源的 API

在 SharePoint 本地场中,交互式社交源旨在鼓励人们共享信息,彼此互动交流。 用户个人网站的“新闻源”页面上有许多源功能。 源包含各组表示微博帖子、对话、状态更新和其他通知的线程。

SharePoint 提供了以下 API,可用于以编程方式使用社交源:

  • 托管代码的客户端对象模型

    • .NET 客户端对象模型

    • Silverlight 客户端对象模型

    • 移动设备客户端对象模型

  • JavaScript 对象模型

  • 代表性状态传输 (REST) 服务

  • 服务器对象模型

作为 SharePoint 开发中的最佳实践,在可能的时候使用客户端 API。 客户端 API 包括客户端对象模型、JavaScript 对象模型和 REST 服务。 有关 SharePoint 中的 API 以及何时使用它们的详细信息,请参阅 在 SharePoint 中选择正确的 API 集

每个 API 都包括您用于执行与订阅源相关的核心任务的管理器对象。 表 1 显示了这些 API 中的管理器和其他关键对象(或 REST 资源)以及可在其中找到 API 的类库(或终结点 URI)。

注意

Silverlight 和移动客户端对象模型未明确记载在表 1 或表 2 中,因为它们提供了与 .NET 客户端对象模型相同的核心功能,并使用相同的签名。 Silverlight 客户端对象模型在 Microsoft.SharePoint.Client.UserProfiles.Silverlight.dll 中进行定义,而移动客户端对象模型在 Microsoft.SharePoint.Client.UserProfiles.Phone.dll 中进行定义。

表 1. 用于以编程方式处理社交源的 SharePoint API

API 关键对象
.NET 客户端对象模型
请参阅: 如何:使用 SharePoint 中的 .NET 客户端对象模型创建和删除帖子以及检索社交源
Manager 对象: SocialFeedManager
主命名空间: Microsoft.SharePoint.Client.Social
其他关键对象: SocialFeedSocialThreadSocialPostSocialPostCreationDataSocialFeedOptionsSocialActor
类库:Microsoft.SharePoint.Client.UserProfiles.dll
JavaScript 对象模型
请参阅 如何:使用 SharePoint 中的 JavaScript 对象模型创建和删除帖子以及检索社交源
Manager 对象: SocialFeedManager
主命名空间: SP。社会
其他关键对象: SocialFeedSocialThreadSocialPostSocialPostCreationDataSocialFeedOptionsSocialActor
类库:SP.UserProfiles.js
REST 服务
请参阅 如何:了解如何使用 SharePoint 中的 REST 服务读取和写入社交源
管理器资源: social.feed (SocialRestFeedManager)
主命名空间 (OData) : SP。社会
其他关键资源:SocialFeed、 SocialRestFeed、SocialThread、 SocialRestThread、SocialPost、SocialPostCreationData、 SocialRestPostCreationDataSocialFeedOptions、SocialActor、 SociaRestActor
接入点: <siteUri>/_api/social.feed
服务器对象模型
注意:使用服务器对象模型访问源数据并远程运行的代码必须使用 SPServiceContextScope 对象。
Manager 对象: SPSocialFeedManager
主命名空间: Microsoft.Office.Server.Social
其他关键对象: SPSocialFeedSPSocialThreadSPSocialPostSPSocialFeedOptionsSPSocialActor
类库:Microsoft.Office.Server.UserProfiles.dll

如果使用服务器对象模型来访问源内容,并且代码未在 SharePoint 实例中运行, (换句话说,如果扩展未安装在应用程序服务器的 LAYOUTS 文件夹中) ,请在代码中使用 SPServiceContextScope 对象。 以下代码示例显示了一种将 SPServiceContextScope 对象合并到代码中的方法。


using (SPSite site = new SPSite(<siteURL>))
{
    using (new Microsoft.SharePoint.SPServiceContextScope(SPServiceContext.GetContext(site)))
    {
        // code
    }
}

在 SharePoint 中使用社交源所需执行的常见编程任务

表 2 显示了处理好友动态订阅源的一般编程任务及您用于执行这些任务的成员。 这些成员来自 .NET 客户端对象模型 (CSOM)、JavaScript 对象模型 (JSOM)、REST 服务和服务器对象模型 (SSOM)。

表 2. 用于在 SharePoint 中使用社交源的常见编程任务的 API

任务 成员
在当前用户上下文中创建管理器对象的实例 CSOM: SocialFeedManager
JSOM: SocialFeedManager
REST:GET<siteUri>/_api/social.feed
SSOM: SPSocialFeedManager
在特定用户的上下文中创建管理器对象的实例 CSOM:未实现
JSOM:未实现
REST:未实现
SSOM: SPSocialFeedManager
获取当前上下文的用户 CSOM: 所有者
JSOM: 所有者
REST:GET<siteUri>/_api/social.feed/my
SSOM: 所有者
获取当前用户的订阅源
(指定订阅源类型)
CSOM: GetFeed
JSOM: getFeed
REST:GET<siteUri>/_api/social.feed/my/Feed (个人 feed.md) 、 <siteUri>/_api/social.feed/my/News<siteUri>/_api/social.feed/my/TimelineFeed<siteUri>/_api/social.feed/my/Likes
SSOM: GetFeed
获取特定用户的个人订阅源 CSOM: GetFeedFor
JSOM: getFeedFor
REST:GET<siteUri>/_api/social.feed/actor(item='domain\\user')/Feed
SSOM: GetFeedFor
获取工作组网站的网站源
(将网站源的 URL 指定为执行组件 (示例:http://< siteCollection>/<teamSite>/newsfeed.aspx) )
CSOM: GetFeedFor
JSOM: getFeedFor
REST:GET<siteUri>/_api/social.feed/actor(item=@v)/Feed?@v='http://<siteCollection>/<teamSite>/newsfeed.aspx'
SSOM: GetFeedFor
将根帖子发布到当前用户的订阅源
(将 null 指定给目标)
CSOM: CreatePost
JSOM: createPost
REST:POST<siteUri>/_api/social.feed/my/Feed/Post,并在请求正文中传递 restCreationData 参数
SSOM: CreatePost
将文章发布到网站源
(将网站源的 URL 指定为目标 (示例:http://< siteCollection>/teamSite>/newsfeed.aspx) )
CSOM: CreatePost
JSOM: createPost
REST:POST<siteUri>/_api/social.feed/actor(item=@av)/feed/post/?@av='<teamSiteUri>/newsfeed.aspx',并在请求正文中传递 restCreationData 参数(为 ID 参数指定 null
SSOM: CreatePost
发布对文章的回复
(指定目标线索的 ID)
CSOM: CreatePost
JSOM: createPost
REST:POST<siteUri>/_api/social.feed/Post/Reply,并在请求正文中传递 restCreationData 参数
SSOM: CreatePost
删除当前用户的订阅源中的帖子、回复或线索(删除根帖子会删除整个线索) CSOM: DeletePost
JSOM: deletePost
REST:POST<siteUri>/_api/social.feed/Post/Delete,并在请求正文中传递 ID 参数
SSOM: DeletePost
从用户的订阅源获取线索(根帖子及其所有回复) CSOM: GetFullThread
JSOM: getFullThread
REST:POST<siteUri>/_api/social.feed/Post,并在请求正文中传递 ID 参数
SSOM: GetFullThread
让用户喜欢(不喜欢)一篇文章或一则回复 CSOM: LikePost ( UnlikePost )
JSOM: likePost ( unlikePost)
REST: POST<siteUri>/_api/social.feed/Post/Like ( <siteUri>/_api/social.feed/Post/Unlike) 并在请求正文中传递 ID 参数
SSOM: LikePost ( UnlikePost )
获取文章的所有爱好者 CSOM: GetAllLikers
JSOM: getAllLikers
REST:POST<siteUri>/_api/social.feed/Post/Likers,并在请求正文中传递 ID 参数
SSOM: GetAllLikers
获取提及某个用户的文章 CSOM: GetMentions
JSOM: getMentions
REST:GET<siteUri>/_api/social.feed/my/MentionFeed
SSOM: GetMentions
获取未读取的提及当前用户的数量 CSOM: GetUnreadMentionCount
JSOM: getUnreadMentionCount
REST:GET<siteUri>/_api/social.feed/my/UnreadMentionCount
SSOM: GetUnreadMentionCount
锁定(解锁)当前用户的订阅源中的线索 CSOM: LockThread ( UnlockThread )
JSOM: lockThread ( unlockThread)
REST: POST<siteUri>/_api/social.feed/Post/Lock ( <siteUri>/_api/social.feed/Post/Unlock) 并在请求正文中传递 ID 参数
SSOM: LockThread ( UnlockThread .md)

注意

REST 示例中的 domain\user 占位符值应替换为实际用户的帐户名称。 若要了解如何在请求正文中传递 REST 参数,请参阅社交源 REST API 参考中的示例

SharePoint 不提供用于直接自定义微博帖子的布局或呈现的 API。 SharePoint 仅提供数据,支持跨平台和跨设备客户端应用定义适合其外形规格和需求的布局。 在 SharePoint 开发中,可以在客户端呈现中使用 JavaScript 替代,如使用客户端呈现 在 SharePoint 外接程序中自定义列表视图中所述。

“我的网站”社交 API 中的源类型概述

订阅源类型表示订阅源数据的类型。 检索当前用户的订阅源时,您可以指定以下订阅源类型:

  • 个人源包含用户的帖子和最新动态。 在“我的网站”上,此源显示在用户的“本人简介”页面上。

  • 新闻源包含当前用户以及用户关注人员和内容的帖子和最新动态。 检索新闻源类型时,请使用 ByModifiedTime 排序选项,获取用户关注人员的最新(已缓存)活动。 在“我的网站”上,此源显示在用户的“新闻源”页面上。

  • Timeline 包含当前用户以及该用户关注的好友和内容所生成的文章和更新。 当您想要从特定时间范围馈入数据时或您想要使用 ByCreatedTime 选项(该选项包括好友的最大抽样)进行分类时, Timeline 特别有用。

  • 源包含具有 PostReference 属性的引用线程,此属性表示当前用户使用属性标记的帖子。

  • Everyone 包含来自当前用户的整个组织的线索。

服务器、客户端和 JavaScript 对象模型提供您可用于检索当前用户的任何订阅源类型的 GetFeed 方法和您可用于检索特定用户的 Personal 订阅源类型(仅)的 GetFeedFor 方法。 两种方法都将 SocialFeedOptions 对象视作参数,您可用其指定基于时间的分类顺序、日期范围和要返回的最大线索数量。

注意

REST 服务提供不同的资源来检索各个源类型,如表 2 所示。

如果一个线程包含两个以上的答复,服务器将返回只包含两个最新答复的线程摘要。 (Thread 摘要应用了 IsDigest 线程属性。) 如果要获取线程中的所有答复,请从源管理器对象调用 GetFullThread 方法并传入线程标识符。

另请参阅