快速发表

  • 接口地址: /api/fresns/editor/publish
  • 请求方式: POST
  • 请求格式: Form-data

header 可选参数:

参数名公开模式(是否必传)私有模式(是否必传)
uidYESYES
midYESYES
tokenYESYES

body 参数:

参数名类型是否必传说明
typeNumberYES1.发表帖子 / 2.发表评论
postGidStringNO发表帖子专用(选填),帖子属于哪个小组 post_logs > group_id
postTitleStringNO发表帖子专用(选填),帖子标题 post_logs > title
commentPidStringNO发表评论专用(必填),评论哪个帖子 comment_logs > post_id
commentCidStringNO发表评论专用(选填),评论哪条评论 comment_logs > comment_id
留空代表一级评论,有值代表子级评论,此处是父级 UUID
contentStringYES内容(前和后,有空格要过滤掉,防止开头和结尾有大量空格)
post_logs > contentcomment_logs > content
isMarkdownNumberYES内容是否为 Markdown 格式 0.否 / 1.是
post_logs > is_markdowncomment_logs > is_markdown
isAnonymousNumberYES是否匿名 0.否 1.是
post_logs > is_anonymouscomment_logs > is_anonymous
fileFileNO附带单个图片文件,先上传文件表,再存日志表
post_logs > files_jsoncomment_logs > files_json
fileInfoStringNO文件信息数组,以字符串传参压缩后的 Array 数组信息
先存文件表再存日志表
post_logs > files_jsoncomment_logs > files_json
eidStringNO扩展信息数组,以字符串传参压缩后的 Array 数组信息
post_logs > extends_jsoncomment_logs > extends_json
注意:不是原样存储,需按该字段格式存储

返回结果:

成功

{
    "code": 0,
    "message": "ok"
}
1
2
3
4

失败

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

开发说明

  • 1、如果是私有模式,当过期后 members > expired_at,该接口不可请求。
  • 2、判断全局发表权限(运营配置 > 发表帖子配置)
    • 2.1、全员发表绑定要求是否满足:绑定邮箱、绑定手机号、实名认证
    • 2.2、特殊规则是否开启:规则类型、日期范围、规则要求
    • 2.3、如果成员主角色是白名单角色,则不受该权限要求,忽略该权限判断。post_limit_whitelistcomment_limit_whitelist
  • 3、主角色判断:如果主角色有过期时间,并且已经过期,则以继承角色权限为主;如果无继承角色(或者该继承 ID 找不到角色),则以配置表 default_role 键名键值的角色权限为准;如果配置表键值为空(或找不到角色),则当无权处理。
    • 3.1、主角色发表权限要求(成员角色表):该角色是否有权发表
    • 3.2、主角色发表绑定要求是否满足(成员角色表):绑定邮箱、绑定手机号、实名认证
    • 3.3、主角色发表是否需要审核:直接通过或者任何情况都需要审核
    • 3.4、主角色发表特殊规则是否开启:规则类型、日期范围、规则要求
  • 4、小组检测
    • 4.1、发表帖子,如果 postGid 参数有值,则需要判断该小组是否存在,以及当前成员是否有权在该小组发帖 groups > permission > publish_post
    • 4.2、发表评论,检测 commentPid 该帖子是否有小组,如果有小组,则判断当前成员是否有权在该小组评论 groups > permission > publish_comment
  • 5、内容字数检测 content,判断字数是否超过限制,超出无法存库,需提示。
    • 帖子字数限制,配置表键名 post_editor_word_count
    • 评论字数限制,配置表键名 comment_editor_word_count
  • 6、前后台遇到上传文件时,均要先判断后台是否关联了存储插件。
    • 未关联提示:“未配置存储设置,请配置后再上传”。
    • 已关联,则调用命令字 fresns_cmd_upload_file 执行上传行为。
    • 发表完成后,回填日志表 主键 IDfiles > table_id 字段中。
  • 7、结论:
    • 7.1、任何一条判断无权后,中止流程(传参内容不入日志表),返回状态码和描述。
    • 7.2、有权发表,但触发了审核条件(全局、主角色、处理词):传参内容入日志表,然后仅修改日志表状态为待审核 state=2,录入提交审核时间 submit_at,其他不动。
    • 7.3、有权发表,并且没有触发审核条件:调用 fresns_cmd_direct_release_content 命令字,正式提交内容入主表。
  • headerdeviceInfo 记录创建交互日志后,需将日志表 主键 ID 填到 session_logs > object_order_id
  • 内容搜索类型 post_logs > type 或 comment_logs > type 处理介绍:
    • file + fileInfo + eid 均为空,typetext,代表是纯文本内容。
    • file 有值,因为只能传图,所以 typeimage,代表内容附带图片文件。
    • fileInfo 有值,根据文件类型选用 imagevideoaudiodoc
    • eid 有值,根据 eid 拿 extends > plugin_unikey 字段值,设为 type 值。
    • image,video,abc 代表内容同时附带了图片、视频、扩展内容
  • 补充资料:编辑器逻辑

fileInfo 参数

[
    {
        "tableType": "存储到 files > table_type",
        "tableName": "存储到 files > table_name",
        "tableField": "存储到 files > table_field",
        "type": "存储到 files > file_type",
        "name": "存储到 files > file_name",
        "mime": "file_appends > file_mime",
        "extension": "存储到 files > file_extension",
        "path": "存储到 files > file_path",
        "originalPath": "存储到 file_appends > file_original_path",
        "mime": "存储到 file_appends > file_mime",
        "size": "存储到 file_appends > file_size",
        "md5": "存储到 file_appends > file_md5",
        "sha1": "存储到 file_appends > file_sha1",
        "rankNum": "存储到 files > rank_num",
        "imageWidth": "图片专用,存储到 file_appends > image_width",
        "imageHeight": "图片专用,存储到 file_appends > image_height",
        "imageLong": "图片专用,存储到 file_appends > image_is_long",
        "videoTime": "视频专用,存储到 file_appends > video_time",
        "videoCover": "视频专用,存储到 file_appends > video_cover",
        "videoGif": "视频专用,存储到 file_appends > video_gif",
        "audioTime": "音频专用,存储到 file_appends > audio_time",
        "transcodingState": "音视频专用,存储到 file_appends > transcoding_state"
    }
]
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

eid 参数

[
    "eid","eid"
]
1
2
3