Skip to content
当前页面

消息 Message

盯梢脚本通过在返回值中指定 message 字段发送消息。

js
export default script(async () => {
  return {
    message: '你好,世界!',
  };
});

message.content

message.content 是消息正文。当 message 是字符串时,其实正等价于 message.content。所以以下用法和上方的例子是等价的。

js
export default script(async () => {
  return {
    message: {
      content: '你好,世界!',
    },
  };
});

message.content 支持常见的内联 markdown 样式,比如 *斜体***加粗**`内联代码` 等。同时也支持部分块级元素:

  • > 引用。
  • ``` 代码片段。
  • 1. 有序列表。
  • - 无序列表。
  • ![alt][0] 图片。注意图片仅支持通过引用指定,详见下方的 message.images

message.title 可选

除了消息正文外,还可以通过 message.title 指定消息标题。注意消息标题是纯文本。

js
export default script(async () => {
  return {
    message: {
      title: '友善的标题',
      content: '友善的内容',
    },
  };
});

message.images 可选

脚本可以通过 message.images 数组来提供图片,每一个数组元素支持如下类型:

  • URL 字符串
  • ArrayBuffer
  • Blob
  • ReadableStream

以 URL 和 ReadableStream 为例:

js
export default script(async () => {
  return {
    message: {
      content: '你好,世界!',
      images: [
        'https://example.com/image1.png',
        'https://example.com/image2.png',
      ],
    },
  };
});
js
export default script(async () => {
  const response = await fetch('https://example.com/image.png');

  if (!response.ok) {
    throw new Error('图片请求失败');
  }

  return {
    message: {
      content: '你好,世界!',
      images: [response.body],
    },
  };
});

message.images 中的图片会自动追加到消息正文的末尾。除此之外,还可以通过内联 markdown 语法将图片插入到正文中:

js
export default script(async () => {
  return {
    message: {
      content: `\
你好,世界!

这是第一张图片:

![图片1][0]

这是第二张图片:

![图片2][1]
`,
      images: [
        'https://example.com/image1.png',
        'https://example.com/image2.png',
      ],
    },
  };
});

提示

注意 Markdown 中的图片序号是从 0 开始的,即 [0] 是第一张,[1] 是第二张,以此类推。

message.tags 可选

message.tags 是标签数组,可以指定消息标签。如果当前频道标签不包含指定的标签,将在发送消息时自动添加。

js
export default script(async () => {
  return {
    message: {
      content: '美元兑人民币汇率刚刚突破 6.66。',
      tags: ['美元'],
    },
  };
});