获取评论[列表]

  • 接口地址: /api/fresns/comment/lists
  • 请求方式: POST
  • 请求格式: JSON

header 可选参数:

参数名公开模式(是否必传)私有模式(是否必传)
uidNOYES
midNOYES
tokenNOYES

body 参数:

参数名类型是否必传说明
searchTypeStringNO搜索类型(搜索类型扩展配置的参数)
searchKeyStringNO搜索:关键词
searchMidNumberNO指定范围:成员
searchPidStringNO指定范围:帖子
searchCidStringNO指定范围:评论
searchStickyNumberNO指定范围:置顶(留空输出全部)
is_sticky 字段 0.否 1.是
likeCountGtNumberNO点赞数大于 like_count 字段
likeCountLtNumberNO点赞数小于 like_count 字段
followCountGtNumberNO关注数大于 follow_count 字段
followCountLtNumberNO关注数小于 follow_count 字段
shieldCountGtNumberNO屏蔽数大于 shield_count 字段
shieldCountLtNumberNO屏蔽数小于 shield_count 字段
commentCountGtNumberNO评论数大于 comment_count 字段
commentCountLtNumberNO评论数小于 comment_count 字段
createdTimeGtStringNO发表时间大于 created_at 字段
createdTimeLtStringNO发表时间小于 created_at 字段
mapIdNumberNO地图服务商编号
longitudeStringNO地图经度(用于计算距离)
latitudeStringNO地图纬度(用于计算距离)
sortTypeStringNO排序类型 like / follow / shield / comment / time
默认 time
sortDirectionNumberNO排序方式 1.升序 2.降序
默认 2.降序
pageSizeNumberNO每页显示条数(默认 30 条)
pageNumberNO页码(默认 1)

返回结果:

成功

{
    "code": 0,
    "message": "ok",
    "data": {
        "common": {
            "implants": [
                //只获取 implants > implant_type=2 的植入内容
                {
                    "implantSetting": {
                        "id": "implants > id",
                        "template": "implants > implant_template", //根据 header 里 AppId 参数获取值
                        "name": "implants > implant_name 多语言",
                        "position": "implants > position",
                        "pageType": "implants > type",
                        "pageTarget": "implants > target",
                        "pageValue": "implants > value",
                        "pageSupport": "implants > support"
                    },
                    //其他参数同 lists 一样,输出的是评论内容,评论为 implants > implant_id
                }
            ],
        },
        "pagination": {
            "total": "一共有多少条数据",
            "current": "当前页码",
            "pageSize": "每页有多少条数据",
            "lastPage": "最后一页页码"
        },
        "list": [
            {
                "pid": "comments > post_id >> posts > uuid",
                "cid": "comments > uuid",
                "content": "comments > content 需要解析内容中的“艾特”、“话题”、“链接”、“表情”四种信息。话题输出时,如果后台设置的是「单 # 号」,但是数据库存的是「双 # 号」,则在输出时,删减结尾 # 号;如果后台设置的是「双 # 号」,但是数据库存的是「单 # 号」,则在输出时,为结尾补充 # 号。",
                "brief": "comments > is_brief",
                "sticky": "comments > is_sticky",
                "commentName": "配置表键名 comment_name 多语言",
                "likeSetting": "配置表键名 like_comment_setting 布尔型",
                "likeName": "配置表键名 like_comment_name 多语言",
                "likeStatus": "查询 member_likes 表。输出 0.未点赞 1.已点赞",
                "postAuthorLikeStatus": "查询 member_likes 表。查询该评论所属帖子的作者是否点赞了该评论(如果帖子作者和评论作者是同一人,则不输出),输出 0.未点赞 1.已点赞",
                "followSetting": "配置表键名 follow_comment_setting 布尔型",
                "followName": "配置表键名 follow_comment_name 多语言",
                "followStatus": "查询 member_follows 表。输出 0.未关注 1.已关注",
                "shieldSetting": "配置表键名 shield_comment_setting 布尔型",
                "shieldName": "配置表键名 shield_comment_name 多语言",
                "shieldStatus": "查询 member_shields 表。输出 0.未屏蔽 1.已屏蔽",
                "shieldMemberStatus": "查询 member_shields 表,该评论的作者是否被我屏蔽。输出 0.未屏蔽 1.已屏蔽",
                "likeCount": "comments > like_count",
                "followCount": "comments > follow_count",
                "shieldCount": "comments > shield_count",
                "commentCount": "comments > comment_count",
                "commentLikeCount": "comments > comment_like_count",
                "time": "comments > created_at",
                "timeFormat": "comments > created_at 人性化格式后",
                "editTime": "comments > latest_edit_at",
                "editTimeFormat": "comments > latest_edit_at 人性化格式后",
                "member": {
                    "anonymous": "comments > is_anonymous 匿名状态则不输出以下用户信息,头像除外",
                    "deactivate": "members > deleted_at 布尔型(停用为 true),如果该成员已经停用,或者查不到数据(已删除),不输出以下用户信息,头像除外",
                    "isAuthor": "该条评论的作者是不是帖子作者自己",
                    "mid": "comments > member_id > members > uuid",
                    "mname": "members > name",
                    "nickname": "members > nickname",
                    "rid": "主角色的值 member_roles > id",
                    "nicknameColor": "主角色的值 member_roles > nickname_color",
                    "roleName": "主角色的值 member_roles > name 多语言",
                    "roleNameDisplay": "主角色的值 member_roles > is_display_name",
                    "roleIcon": "主角色的值 member_roles > icon_file_url",
                    "roleIconDisplay": "主角色的值 member_roles > is_display_icon",
                    "avatar": "members > avatar_file_url,成员头像为空时 default_avatar 键值,匿名头像 anonymous_avatar 键值,已注销头像 deactivate_avatar 键值",
                    "decorate": "members > decorate_file_url",
                    "gender": "members > gender",
                    "bio": "members > bio",
                    "verifiedStatus": "members > verified_status",
                    "verifiedIcon": "members > verified_file_url",
                    "verifiedDesc": "members > verified_desc",
                    "icons": [
                        {
                            "icon": "member_icons > icon_file_url",
                            "name": "member_icons > name 多语言",
                        }
                    ]
                },
                "icons": [
                    //来源 comments > more_json 字段 icons 参数
                    {
                        "name": "label",
                        "fileId": "关联字段 files > id",
                        "fileUrl": "根据规则拼接成的完整 URL 地址"
                    }
                ],
                "commentPreviews": [
                    // 当 searchCid 为空时 commentPreviews 才输出。代表输出一级评论,只有一级评论有 commentPreviews 参数。
                    // 配置表键名 comment_preview 不为 0 时,代表开启输出,数字代表输出条数,最多 3 条。根据点赞数由大到小输出评论。
                    {
                        // 如果获取的评论作者已经删除(members > deleted_at),则顺延下一条评论输出。
                        "anonymous": "comments > is_anonymous 匿名状态则不输出 isAuthor、mid、mname、nickname 用户信息",
                        "isAuthor": "该条评论的作者是不是帖子作者自己",
                        "mid": "comments > member_id >> members > uuid",
                        "mname": "members > name",
                        "nickname": "members > nickname",
                        "cid": "comments > uuid",
                        "content": "comments > content",
                        "attachCount": {
                            // 该条回复如果有附件,附件数量。
                            "images": 9,
                            "videos": 1,
                            "audios": 1,
                            "docs": 3,
                            "extends": 1
                        },
                        "replyTo": {
                            // 该条回复的 parent_id = 当前评论的 ID,则不输出以下信息。当前评论 ID 则代表二级评论。
                            "cid": "comments > parent_id >> comments > uuid",
                            "anonymous": "comments > is_anonymous 匿名状态则不输出 mid、mname、nickname 用户信息",
                            "deactivate": "members > deleted_at 布尔型(停用为 true),如果该成员已经停用,或者查不到数据(已删除),不输出 mid、mname、nickname 用户信息",
                            "mid": "comments > member_id >> members > uuid",
                            "mname": "members > name",
                            "nickname": "members > nickname"
                        }
                    }
                ],
                "replyTo": {
                    // 当 searchCid 有值时 replyTo 才输出。代表输出子级评论,只有子级评论才有 replyTo 信息,代表某某回复了某某。
                    // 该条评论的 parent_id 为当前评论(参数 searchCid),代表为二级评论,则不输出以下信息。
                    // 该条评论的 parent_id 不是当前评论(参数 searchCid),代表为三级或更多级,展现评论下互动,输出他父级评论的以下信息。
                    "cid": "comments > parent_id >> comments > uuid",
                    "anonymous": "comments > is_anonymous 匿名状态则不输出 mid、mname、nickname 用户信息",
                    "deactivate": "members > deleted_at 布尔型(停用为 true),如果该成员已经停用,或者查不到数据(已删除),不输出 mid、mname、nickname 用户信息",
                    "mid": "comments > member_id >> members > uuid",
                    "mname": "members > name",
                    "nickname": "members > nickname"
                },
                "location": {
                    "isLbs": "comments > is_lbs",
                    "mapId": "comment_appends > map_id",
                    "latitude": "comment_appends > map_latitude",
                    "longitude": "comment_appends > map_longitude",
                    "scale": "comment_appends > map_scale",
                    "poi": "comment_appends > map_poi",
                    "poiId": "comment_appends > map_poi_id",
                    "distance": "如果用户传输了经纬度,则输出距离,长度单位在语言配置参数"
                },
                "attachCount": {
                    "images": 9,
                    "videos": 1,
                    "audios": 1,
                    "docs": 3,
                    "extends": 1
                },
                "files": [
                    //来源 comments > more_json 字段,files 参数
                    //根据 rankNum 参数升序输出
                    {
                        "fid": "files > uuid",
                        "type": "files > file_type",
                        "rankNum": "files > rank_num",
                        "name": "files > file_name",
                        "extension": "files > file_extension",
                        "mime": "file_appends > file_mime",
                        "size": "file_appends > file_size",
                        "imageWidth": "file_appends > image_width",
                        "imageHeight": "file_appends > image_height",
                        "imageLong": "图片专用:file_appends > image_is_long",
                        "imageRatioUrl": "图片专用:images_bucket_domain + 文件 file_path 字段 + images_thumb_ratio",
                        "imageSquareUrl": "图片专用:images_bucket_domain + 文件 file_path 字段 + images_thumb_square",
                        "imageBigUrl": "图片专用:images_bucket_domain + 文件 file_path 字段 + images_thumb_big",
                        "videoTime": "视频专用:file_appends > video_time",
                        "videoCover": "视频专用:videos_bucket_domain + 文件 video_cover 字段",
                        "videoGif": "视频专用:videos_bucket_domain + 文件 video_gif 字段",
                        "videoUrl": "视频专用:videos_bucket_domain + 文件 file_path 字段",
                        "audioTime": "音频专用:file_appends > audio_time",
                        "audioUrl": "音频专用:audios_bucket_domain + 文件 file_path 字段",
                        "transcodingState": "音视频专用,存储到 file_appends > transcoding_state",
                        "moreJson": {
                            // 扩展信息 file_appends > more_json
                        }
                    }
                ],
                "extends": [
                    {
                        "eid": "extend_linkeds > extend_id >> extends > uuid",
                        "plugin": "extends > plugin_unikey",
                        "frame": "extends > frame",
                        "position": "extends > position",
                        "content": "extends > text_content",
                        "files": [
                            //frame=1 专用
                            //来源 extends > text_files
                        ],
                        "cover": "extends > cover_file_url",
                        "title": "extends > title 多语言",
                        "titleColor": "extends > title_color",
                        "descPrimary": "extends > desc_primary 多语言",
                        "descPrimaryColor": "extends > desc_primary_color",
                        "descSecondary": "extends > desc_secondary 多语言",
                        "descSecondaryColor": "extends > desc_secondary_color",
                        "btnName": "extends > btn_name 多语言",
                        "btnColor": "extends > btn_color",
                        "type": "extends > extend_type",
                        "target": "extends > extend_target",
                        "value": "extends > extend_value 根据内容类型,输出对应的 URL",
                        "support": "extends > extend_support",
                        "moreJson": {
                            // extends > more_json
                        }
                    }
                ],
                "commentBtn": {
                    // 该评论所属帖子的作者,跟该请求的成员,如果是一致,才输出该按钮参数。
                    "status": "comments > post_id >> post_appends > comment_btn_status",
                    "name": "post_appends > comment_btn_name 多语言",
                    "url": "post_appends > comment_btn_plugin_unikey 根据插件 access_path 字段生成"
                },
                "post": {
                    // searchPid 为空时输出,代表评论脱离了帖子独立输出,所以需要附带 post 参数,该评论所属帖子的信息
                    // 如果 searchCid 有值,则不输出,代表输出该条 cid 子级评论,无需输出评论所属帖子信息
                    "pid": "comments > post_id >> posts > uuid",
                    "title": "posts > title",
                    "content": "posts > content",
                    "status": "posts > is_enable",
                    "gid": "posts > group_id >> groups > uuid",
                    "gname": "groups > name 多语言",
                    "cover": "groups > cover_file_url",
                    "anonymous": "posts > is_anonymous",
                    "deactivate": "posts > member_id >> members > deleted_at",
                    "mid": "posts > member_id >> members > uuid",
                    "mname": "members > name",
                    "nickname": "members > nickname",
                    "avatar": "members > avatar_file_url,成员头像为空时 default_avatar 键值,匿名头像 anonymous_avatar 键值"
                },
                "manages": [
                    //1、 plugin_usages > type=5 + scene 字段包含 2 允许在该列表输出的条件
                    //2、 plugin_usages > is_group_admin=0
                    //2.1、 plugin_usages > member_roles 为空则全部输出。
                    //2.2、 plugin_usages > member_roles 有值,则判断当前请求成员的所有角色 ID 是否包含在其中,在则输出,不在不输出(未登录则不在)。
                    //3、 plugin_usages > is_group_admin=1
                    //3.1、判断当前请求的成员是否为小组管理员 groups > > permission > admin.members 包含请求成员 id,是管理员则输出,不是不输出。
                    {
                        "plugin": "plugin_usages > plugin_unikey",
                        "name": "plugin_usages > name 多语言",
                        "icon": "plugin_usages > icon_file_url",
                        "url": "详见 plugins 地址拼接说明"
                    }
                ],
                "editStatus": {
                    "isMe": "该条评论作者是否为本人",
                    "canEdit": "判断键名 comment_edit 配置的条件,是否允许编辑,多长时间内可以编辑、评论置顶后编辑权限",
                    "canDelete": "判断 comment_appends > can_delete 字段规定是否可以删除",
                }
            }
        ]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254

失败

{
    "code": "code_messages > code",
    "message": "code_messages > message"
}
1
2
3
4

开发说明

  • 如果是私有模式,当过期后 members > expired_at,需判断到期后的状态。配置表 site_private_end 键值为 1 时,该接口不可请求;键值为 2 时,仅输出到期前的内容,到期后的新内容不输出。
  • 过滤屏蔽对象的评论(成员、评论)。
  • searchKey 查询的是评论 comment_appends > content 字段内容。
  • searchCid 为空,代表获取一级评论,commentSetting 参数输出内容,有值时,不输出 commentSetting 参数。
  • searchCid 有值,需要判断是否为一级评论(父级为 0),不支持获取二级及以上级的评论。输出一级评论的子级评论的时候,把他下面的所有子级评论(二级、三级等无限级)都输出。
  • searchType 留空代表输出所有内容。内容为插件 unikey 值,用于搜索包含指定插件扩展内容的帖子。
  • searchMid 查看别人信息时,是否输出数据,根据后台配置决定,后台 > 运营 > 互动配置 > 查看别人内容设置,后台设置成禁止时,不输出数据。
    • 查看别人内容设置
    • 配置键名 it_publish_comments
    • 关闭后,仅 header mid 和 viewMid(或 viewMname 转换 mid)一致才输出
  • 所有涉及图片的参数,需要判断是否开启了防盗链,如果开启了,不能直接使用 URL 字段值,需要获取防盗链链接。
searchType说明
text输出纯文本评论
image输出带图片的评论
video输出带视频的评论
audio输出带音频的评论
doc输出带文档的评论
{abc}输出插件 abc 扩展内容的评论