Skip to content

GetMessage()

任延华 edited this page Jan 20, 2020 · 1 revision
    public class GetMessageRequest
    {
        public string TaskID { get; set; }  
        public string Action { get; set; }  // 动作。空/getGroupName
        public string GroupCondition { get; set; }  // 群组名或者 ID
        public string UserCondition { get; set; }   // 用户名条件
        public string TimeCondition { get; set; }   // 时间范围。xxxx~xxxx。DateTime.ToString("G") 格式。
        public string SortCondition { get; set; }   // 排序方式。publishTime|ascending。默认按照 publishTime 升序
        public string IdCondition { get; set; } // 消息 ID 的列表
        public string SubjectCondition { get; set; }    // 主题词的列表

        public long Start { get; set; }
        public long Count { get; set; }

Action

动作。 有以下值可用: 空/transGroupName/transGroupNameQuick/enumGroupName/enumSubject

Action为空的时候,表示单纯获取消息。

Action为enumSubject,表示枚举满足条件的消息记录中的主题词字段内容。 在返回的MessageRecord结构中,subjects字段是主题词,data字段里面是该主题词内容出现的次数。

UserCondition

用户名范围。用法xxxx,xxxx,xxxx。如果为空则表示不限制用户名范围。

xxxx代表用户名或者用户ID。

用户名例子:testclient1或un:testclient1

用户ID例子:ui:nnnnnnnn

本API将用此参数去过滤消息记录的creator字段。Creator字段里存储的是用户ID,不是用户名,但本参数可以使用用户名,本API会自动翻译为用户ID进行检索。

TimeCondition

时间范围。用法xxxx~xxxx。如果为空则表示不限制时间范围。

本API将用此参数去过滤消息记录的publishTime字段。

SortCondition

排序方式。用法:publishTime|ascending。左边是排序字段,右边是升序或者降序。

如果本参数为空,默认用publishTime字段按照升序排序。

asc desc

IdCondition

消息ID。用法:xxxxx,xxxxx,xxxxx

SubjectCondition

主题词。

用法1:Subject1 表示主题中至少具有一个Subject1的消息

用法2:Subject1,Subject2 表示主题中具有Subject1或者Subject2的消息。不必同时具备

用法3:Subject1,Subject2|and 表示主题中具有Subject1和Subject2的消息。必须同时具备。主题词值可以不止两个。 注:前面没有用竖线部分的,相当于用了’|or’的效果

用法4:[Subject1,Subject2] 表示主题中同时具有Subject1和Subject2的消息,而且仅有这两个值。如果有第三个值的则不能命中 注:用了方括号以后,再用竖线部分会被忽略

用法5:[Subject1] 表示主题中具有Subject1的消息,而且仅有这一个值。如果有更多值的则不能命中

关于主题词本身内容里面出现逗号等特殊字符怎么办?主题词本身部分,要利用 StringUtil.EscapeString() 函数进行转义,以保护里面的特殊字符。用法如下:

strText = StringUtil.EscapeString(strText, ",|"); 然后再用逗号等字符拼接成检索式字符串。

Clone this wiki locally