Skip to content

[feat] Channel Gateway #8

@sheepbox8646

Description

@sheepbox8646

实现一个 Channel Gateway 用于处理聊天软件的消息发送与接收:

/channel/:platform

实现一个统一化可扩展的channel api

  • 用户发送消息,通过 /chat 将内容返回到特定的社交平台
  • 实现一个接口 (e.g. /channel/telegram/send) 实现主动发送消息

以下均将telegram作为例子

  • PUT /channel/telegram: 更新telegram配置,这里是比较核心的配置,比如 botToken
  • PUT /channel/telegram/config: 这个config每个用户都不一样,比如里面需要有allowed telegram username,一个memoh用户对应一个tg账号
  • POST /channel/telegram/send: 主动发送消息给用户
  • ...

除此之外每一个channel服务都应该内部处理接收用户发送并通过 /chat 接口处理

应该设计两个表(仅作参考):

  1. channel config
  • channel_type: 可选telegram等
  • config (jsonb): 配置channel,比如telegram的botToken
  • user:用户
  • global: 是否设置为全局,只有管理员才能设置这个,member可以设置自己的botToken但只能自己用,如果member设置了自己的channel config则使用用户的,否则使用管理员设置为默认的,一个channel只能有一个全局配置
  1. channel user config

这个就是每个用户在每个channel的设置,各自都不一样,通常用来关联自己的账号

Metadata

Metadata

Assignees

No one assigned

    Labels

    featNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions