飞书消息

COOL

v1.0.0 更新于2024-09-03 15:12

说明文档
回复列表 (0)

介绍

飞书推送插件,推送机器人webhook消息,推送应用消息

标识

调用插件的时候需要用到标识,标识是唯一的,不能重复,建议使用英文,不要使用中文,对应插件 plugin.json 中的 key 字段

  • 标识:feishu

配置

{
  "webhookUrl": "机器人的webhook地址",
  "appId": "xxx的appId",
  "appSecret": "xxx的appSecret"
}

方法

下面是插件提供的一些方法

  • 消息体
// 飞书消息体
interface Message {
  /** 类型  */
  msg_type:
    | "text"
    | "post"
    | "image"
    | "file"
    | "audio"
    | "media"
    | "sticker"
    | "interactive"
    | "share_chat"
    | "share_user";
  /** 内容 */
  content: any;
}
  • sendByHook
  /**
   * 推送webHook消息
   * @param message
   * @returns 发送结果
   */
  async sendByHook(message: Message)
  • sendByApp
  /**
   * 推送应用消息
   * @param message 消息
   * @param options receive_id 接收人 receive_id_type 接收人类型 message_id 消息ID uuid 消息唯一ID
   * @returns 发送结果
   */
  async sendByApp(
    message: Message,
    options: {
      receive_id: string;
      receive_id_type: "open_id" | "user_id" | "chat_id" | "union_id" | "email";
      message_id?: string;
      uuid?: string;
    }
  )
  • uploadImage
/**
   * 上传图片
   * @param filePath 文件路径
   * @param image_type message 用于发送消息 avatar 用于设置头像
   * @returns
   */
  async uploadImage(
    filePath: string,
    image_type: "message" | "avatar" = "message"
  )
  • uploadFile
 /**
   * 上传文件
   * @param filePath 文件路径
   * @param file_type 文件类型
   * @returns
   */
  async uploadFile(
    filePath,
    file_type:
      | "opus"
      | "mp4"
      | "pdf"
      | "doc"
      | "xls"
      | "ppt"
      | "stream" = "stream"
  )
  • chatList
/**
   * 获得聊天列表,如:应用所在的群组
   * @returns
   */
  async chatList()
  • getUserInfos
/**
   *获得用户信息
   * @param options  emails 邮箱数组,mobiles 手机号数组 不能同时为空 include_resigned 是否包含离职员工
   * @returns 用户信息
   */
  async getUserInfos(options: {
    emails?: string[];
    mobiles?: string[];
    include_resigned?: boolean;
  })
  • getUserIds
/**
  * 使用手机号或邮箱获取用户 ID
  * @param options emails 邮箱数组,mobiles 手机号数组 不能同时为空 include_resigned 是否包含离职员工
  * @returns
  */
 async getUserIds(options: {
   emails?: string[];
   mobiles?: string[];
   include_resigned?: boolean;
 })
  • getToken
/**
   * 获得token
   * @returns
   */
  async getToken()

调用示例

@Inject()
pluginService: PluginService;

// 发送webhook消息
await this.pluginService.invoke('feishu', 'sendByHook', {
  msg_type: "text",
  content: { text: `<at user_id="all">所有人</at>这是一条测试消息` },
})

注意:调用飞书的接口需要对应的应用权限,需要在飞书开发平台配置,否则调用不成功,飞书的文档都有说明接口对应需要哪些权限,配置上就可以。

更新日志

  • v1.0.0 (2024-01-29)
    • 初始版本

写回复

回复(0)

写的没人看得懂 ??