如何通过 Web 服务或数据库查询访问 SharePoint 内置提醒我定义(用户定义的提醒)

How can I access to SharePoint builtin alert me definitions (to user defined alerts) by web service or database query

我不想在 SharePoint 中自定义 提醒我 像这样 link

但我想获得如下警报属性:

  1. 我想知道警报定义在哪个列表或 Doc-Lib 上?
  2. 当他们需要时(电子邮件或短信?)(他们希望立即或每天向 SharePoint 发送警报)
  3. 谁定义了这个警报(哪个用户)?
  4. 最近几天此警报触发了多少次? (历史)
  5. 有没有像 android 中的 事件处理程序 那样的方法,我们订阅 SharePoint 事件处理程序并触发事件或 运行 自定义代码或调用网络服务?

问题:有什么方法可以访问上述任何项目吗? (通过调用网络服务?或 SQL 查询?或任何其他替代解决方案?)

(我的目标:决定拥有替代渠道,如 Telegram 机器人或云 phone(CloudCall 可与许多 CRM 系统一起使用)呼叫和其他有吸引力的方式客户通知他们。关系管理)

提前致谢

案例 4 或 5 的优先级较低:如果不可能或很难或花费您的时间或超出此问题的范围,我们将跳过它。

Qabbas 回答了我的问题here,我在这里为您添加更多描述。

  1. 我想知道 Alerts 定义在哪个列表或 Doc-Lib 上?
  2. 以及当他们需要时(电子邮件或短信?)(他们希望立即或每天向 SharePoint 发送警报?

您可以通过 SQL 查询实现此目的,其中 SharePoint 中的通知已存储在 内容数据库 中,特别是 ImmedSubscriptions

SchedSubscriptionsTable(更多内容在 link 中)。基于何时 Send Alert Option

此外,您可以通过 C# 使用 SSOM 通过 SPAlertCollection 获取警报到 return 网站或用户或列表的警报集合。

SPSite oSiteCollection = SPContext.Current.Site;
SPWebCollection collWebsites = oSite.AllWebs;
foreach (SPWeb oWebsite in collWebsites)
{
SPAlertCollection collAlerts = oWebsite.Alerts;

    foreach (SPAlert oAlert in collAlerts)
    {
        Label1.Text = SPEncode.HtmlEncode(oWebsite.Title) + " :: " +
            SPEncode.HtmlEncode(oAlert.Title) + " :: " +
            oAlert.User.LoginName + "<BR>";
        writer.Write(strLabelText);
    }
oWebsite.Dispose();
}

关于上述代码的更多信息 here

我在 ImmedSubscriptionsSchedSubscriptionsTable 中写了关于这两种方法的更多详细信息以及每个字段的内容,在 Get All User Alerts By List Name in SharePoint 2013

中表示了详细步骤
  1. 谁定义了这个警报(哪个用户)?

不幸的是,我找不到关于此 tables 的警报创建者的任何信息,只能找到将接收警报的用户的 user ID

  1. 最近几天此警报触发了多少次? (历史)

某些信息可能在 EventCache table 上可用,但我不确定,但我查看了这篇文章,其中详细描述了一些存储过程和其他 table 与警报相关的 SharePoint E-Mail Confirmations and Alerts (under the hood)

注意:要实现 3,4,您还可以根据您的要求构建自己的自定义简单警报,这将通过工作流和事件接收器执行与内置警报相同的功能(on item not on alerts it's not applicable ) 可以灵活地跟踪您的通知。

  1. 有没有什么方法像 android 中的事件处理程序,我们订阅 SharePoint 事件处理程序并触发事件或 运行 自定义代码或调用网络服务?

本文可能对您有所帮助External events and alerts in SharePoint 2013