[会话]发送消息

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

header 可选参数:

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

body 参数:

参数名类型是否必传说明
recvMidNumberYES收信者 ID
messageStringNO消息内容
fidStringNO文件 UUID

返回结果:

成功

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

失败

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

开发说明

  • 先判断全局是否开启了私信功能,配置表 dialog_status 键名。
  • 再判断成员主角色是否有权发送私信 member_roles > permission > dialog=true,如果主角色有过期时间,并且已经过期,则以继承角色权限为主;如果无继承角色(或者该继承 ID 找不到角色),则以配置表 default_role 键名键值的角色权限为准;如果配置表键值为空(或找不到角色),则当无权处理。
  • 如果是私有模式,当过期后 members > expired_at ,不允许发送消息。
  • 如果对方已经注销 members > deleted_at,不可以发送。
  • 符合对方的私信设置 members > dialog_limit
  • 发送前需要判断过滤词规则,触发了过滤词则按选项处理,参见 stop_words 数据表。
  • 每次发送消息都需要查询 dialogsa_member_idb_member_id 字段,确定会话消息表 dialog_id 的值,会话 ID 由系统查询录入,没有就新建。
  • 发送消息后,需要更新的 dialogs 表字段有 latest_message_idlatest_message_timelatest_message_briefa_status 或 b_statusa_is_display 或 b_is_display 五个字段。如果发送的消息是文件,则以文件类型英文名(带括号)存储到 latest_message_brief 字段,四种文件的格式如下。
    • [image]
    • [video]
    • [audio]
    • [doc]
  • messagefid 两个参数,二选一必填一个。