sendMessage

Gửi tin nhắn văn bản

api.sendMessage(message, threadId[, type])

Parameters

  • message string | MessageContent

  • threadId string

    • Id của người dùng/nhóm

  • type ThreadType?

    • loại thread: người dùng/nhóm, mặc định là người dùng

Return

Promise<SendMessageResponse>

Types

export type MessageContent = {
    /**
     * Nội dung văn bản
     */
    msg: string;
    /**
     * Định dạng nội dung văn bản
     */
    styles?: Style[];
    /**
     * Mức độ quan trọng của tin nhắn
     */
    urgency?: Urgency;
    /**
     * Tin nhắn trích dẫn
     */
    quote?: SendMessageQuote;
    /**
     * Đề cập người dùng trong nhóm
     */
    mentions?: Mention[];
    /**
     * Tệp đính kèm
     */
    attachments?: AttachmentSource | AttachmentSource[];
    /**
     * Thời gian tồn tại của tin nhắn, mili giây
     */
    ttl?: number;
};

export enum TextStyle {
    Bold = "b",
    Italic = "i",
    Underline = "u",
    StrikeThrough = "s",
    Red = "c_db342e",
    Orange = "c_f27806",
    Yellow = "c_f7b503",
    Green = "c_15a85f",
    Small = "f_13",
    Big = "f_18",
    UnorderedList = "lst_1",
    OrderedList = "lst_2",
    Indent = "ind_$",
};

export type Style =
    | {
          start: number; // vị trí bắt đầu định dạng
          len: number; // độ dài văn bản tính từ vị trí bắt đầu
          st: Exclude<TextStyle, TextStyle.Indent>; // định dạng
      }
    | {
          start: number; // vị trí bắt đầu định dạng
          len: number; // độ dài văn bản tính từ vị trí bắt đầu
          st: TextStyle.Indent;
          /**
           * Độ dài thục lề
           */
          indentSize?: number;
      };

export enum Urgency {
    Default,
    Important,
    Urgent,
};

export type Mention = {
    /**
     * vị trí bắt đầu chuỗi đề cập
     */
    pos: number;
    /**
     * độ dài chuỗi đề cập
     */
    len: number;
    /**
     * id người dùng cần đề cập
     */
    uid: string;
};

export type SendMessageQuote = {
    content: TMessage["content"];
    msgType: TMessage["msgType"];
    propertyExt: TMessage["propertyExt"];

    uidFrom: TMessage["uidFrom"];
    msgId: TMessage["msgId"];
    cliMsgId: TMessage["cliMsgId"];
    ts: TMessage["ts"];
    ttl: TMessage["ttl"];
};

export type SendMessageResult = {
    msgId: number;
};

export type SendMessageResponse = {
    message: SendMessageResult | null;
    attachment: SendMessageResult[];
};

Examples

Gửi tin nhắn văn bản đến nhóm

import { ThreadType } from "zca-js";

api.sendMessage("Xin chào", "0000000000000000", ThreadType.Group);

Gửi tin nhắn với định dạng và mức độ quan trọng tùy chỉnh

import { ThreadType, Urgency, TextStyle } from "zca-js";

const text = "TIN QUAN TRỌNG!!!";

api
    .sendMessage(
        {
            msg: text,
            urgency: Urgency.Important,
            styles: [
                {
                    start: 0,
                    len: text.length,
                    st: TextStyle.Bold // in đậm
                },
                {
                    start: 0,
                    len: text.length,
                    st: TextStyle.Red // màu đỏ
                },
                {
                    start: 0,
                    len: text.length,
                    st: TextStyle.Big // cỡ chữ lớn
                }
            ]
        },
        "0000000000000000",
        ThreadType.Group
    )
    .then(console.log)
    .catch(console.error);

Gửi tin nhắn văn bản và đề cập người dùng khác

import { ThreadType } from "zca-js";

api
    .sendMessage(
        {
            msg: "Xin chào @ZCA",
            mentions: [
                {
                    pos: 9,
                    uid: "0000000000000000",
                    len: 4
                }
            ]
        },
        "0000000000000000",
        ThreadType.Group
    )
    .then(console.log)
    .catch(console.error);

Gửi tin nhắn văn bản kèm trích dẫn

// phản hồi kèm trích dẫn lại mọi tin nhắn của người khác
api.listener.on("message", (message) => {
    if (!message.isSelf) {
        api
            .sendMessage(
                {
                    msg: "ok",
                    quote: message
                },
                message.threadId,
                message.type
            )
            .then(console.log)
            .catch(console.error);
    }
});

Gửi tệp đính kèm

import path from "path";

// gửi file chỉ định vào nhóm mỗi khi có ai nhắn "file"
api.listener.on("message", (message) => {
    const isPlainText = typeof message.data.content == "string";
    if (isPlainText && message.data.content == "file") {
        api
            .sendMessage(
                {
                    msg: "",
                    attachments: [path.resolve("./file.txt")]
                },
                message.threadId,
                message.type
            )
            .then(console.log)
            .catch(console.error);
    }
});

Last updated