通过 SharePoint 跟踪内容

了解在 SharePoint 中关注内容(文档、网站和标签)所需执行的常见编程任务。

用于在 SharePoint 中关注内容的 API

当用户跟进文档、站点或标记时,文档中的状态更新、站点上的会话和标记使用的通知将显示在其新闻源中。 用户可以在"新闻源"和"跟进"内容页上查阅与以下内容相关的功能。

SharePoint 提供了以下 API,可用于以编程方式关注内容:

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

    • .NET 客户端对象模型

    • Silverlight 客户端对象模型

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

  • JavaScript 对象模型

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

  • 服务器对象模型

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

每个 API 都包含一个管理器对象,用于执行关注内容的核心任务。

注意

可使用相同 API 关注人员。 有关关注人员任务的概述,请参阅 在 SharePoint 中 关注人员。

表 1 显示了这些 API 中的管理器和其他关键对象(或 REST 资源),以及可在其中查找 API 的类库(或接入点)。

注意

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 对象: SocialFollowingManager
主命名空间: Microsoft.SharePoint.Client.Social
其他关键对象: SocialActorSocialActorInfoSocialActorTypeSocialActorTypes
类库:Microsoft.SharePoint.Client.UserProfiles.dll
JavaScript 对象模型 Manager 对象: SocialFollowingManager
主命名空间: SP。社会的
其他关键对象: SocialActorSocialActorInfoSocialActorTypeSocialActorTypes
类库:SP.UserProfiles.js
REST 服务
请参阅 如何:在 SharePoint 中使用 REST 服务关注文档、网站和标记
管理器资源: social.following
OData) (主命名空间: sp.social.SocialRestFollowingManager
其他关键资源: SocialActorSocialActorInfoSocialActorTypeSocialActorTypes
接入点: <siteUri>/_api/social.following
服务器对象模型 Manager 对象: SPSocialFollowingManager
主命名空间: Microsoft.Office.Server.Social
其他关键对象: SPSocialActorSPSocialActorInfoSPSocialActorTypeSPSocialActorTypes
类库:Microsoft.Office.Server.UserProfiles.dll

在 SharePoint 中关注内容所需执行的常见编程任务

表 2 显示了用于跟进内容的常见编程任务以及您用于执行它们的成员。 这些成员来自于 .NET 客户端对象模型 (CSOM)、JavaScript 对象模型 (JSOM)、REST 服务和服务器对象模型 (SSOM)。

注意

可使用相同 API 关注人员。 有关关注人员任务的概述,请参阅 在 SharePoint 中 关注人员。

表 2. SharePoint 中以下内容的常见任务的 API

任务 Members
在当前用户的上下文中创建管理器对象实例 CSOM: SocialFollowingManager
JSOM: SocialFollowingManager
休息: <siteUri>/_api/social.following
SSOM: SPSocialFollowingManager
创建指定用户的上下文中的管理器对象的实例 CSOM:未实现
JSOM:未实现
REST:未实现
SSOM: SPSocialFollowingManager (重载)
使得当前用户开始或停止跟进项 CSOM: 遵循 ( StopFollowing )
JSOM: 遵循 ( stopFollowing)
REST: POST<siteUri>/_api/social.following/Follow ( <siteUri>/_api/social.following/StopFollowing) 并在请求正文中传递 actor 参数
SSOM: 遵循 ( StopFollowing )
查明当前用户是否正在跟进某特定项 CSOM: IsFollowed
JSOM:isFollowed
REST:POST<siteUri>/_api/social.following/IsFollowed,并在请求正文中传递 actor 参数
SSOM: IsFollowed
获取当前用户正在跟进的文档、站点和/或标记 CSOM: GetFollowed
JSOM:getFollowed
REST:GET<siteUri>/_api/social.following/my/Followed(types=2) (documents = 2, sites = 4, tags = 8.md)
SSOM: GetFollowed
获取用户正在跟进的文档、站点和/或标记的计数 CSOM: GetFollowedCount
JSOM:getFollowedCount
REST:GET<siteUri>/_api/social.following/my/FollowedCount(types=2) (documents = 2, sites = 4, tags = 8.md)
SSOM: GetFollowedCount
获取列出当前用户所跟进的文档的站点的 URI CSOM: FollowedDocumentsUri
JSOM:followedDocumentsUri
REST:GET<siteUri>/_api/social.following/my/FollowedDocumentsUri
SSOM: FollowedDocumentsUri
获取列出当前用户所跟进的站点的站点 URI CSOM: FollowedSitesUri
JSOM:followedSitesUri
REST:GET<siteUri>/_api/social.following/my/FollowedSitesUri
SSOM: FollowedSitesUri

注意

有关演示如何使用 REST 服务关注内容的示例,请参阅 如何:在 SharePoint 中使用 REST 服务关注文档、网站和标记

如何使用 JavaScript 对象模型根据标记名称获取标记的 GUID

若要开始和停止关注标签或者了解当前用户是否关注该标签,您需要使用标签 GUID。 下列代码显示了如何基于标签名称获取 GUID。

在运行代码前,您需要向 sp.taxonomy.js 添加一个引用,并使用现有标签的名称更改占位符标签名称。


function getTagGuid() {
    var tagName = '#tally';
    var clientContext = new SP.ClientContext.get_current();
    var label = SP.Taxonomy.LabelMatchInformation.newObject(clientContext);
    label.set_termLabel(tagName);
    label.set_trimUnavailable(false);
    var taxSession = SP.Taxonomy.TaxonomySession.getTaxonomySession(clientContext);
    var termStore = taxSession.getDefaultKeywordsTermStore();
    var termSet = termStore.get_hashTagsTermSet();
    terms = termSet.getTerms(label);
    clientContext.load(terms);
    clientContext.executeQueryAsync(
        function () {
            var tag = terms.get_item(0);
            if (tag !== null) {
                var tagGuid = tag.get_id().toString();
                if (!SP.ScriptUtility.isNullOrEmptyString(tagGuid)) {
                    alert(tagGuid);
                }
            }
        },
        function (sender, args) {
            alert(args.get_message());
        }
    );
}

另请参阅