盯梢 {script}
盯梢是可以将消息变现的推送工具,盯梢频道主既可以手动向订阅者推送新消息,也可以通过盯梢脚本自动完成消息采集和推送。
盯梢脚本是盯梢提供的自动化频道消息推送方案,频道主可以通过 JavaScript 快速编写自动化脚本,托管到盯梢脚本服务器,定时或通过 webhook 触发执行。
盯梢脚本提供了两种编辑/部署方案:
- 通过在线盯梢脚本编辑器(script.dingshao.cn)直接编辑和部署脚本。
- 通过 npm 命令行向盯梢脚本 registry 发布脚本。
为盯梢频道创建脚本
- 打开盯梢手机应用,切换到“发布”页面创建频道。
- 打开盯梢脚本编辑器,在手机应用上进入频道管理页面,打开扫一扫授权盯梢脚本编辑器。
此时可以看到生成的默认脚本,大致如下:
export default async function (payload, context) {
return {
content: '你好,盯梢!',
};
}
在脚本“调试”页面点击右下角“测试”按钮即可在模拟环境下执行脚本,此时不会真的推送消息。
调试完成后,可以在部署页面看到 webhook 或按需配置计划执行,点击右下角“部署”按钮即可实际部署脚本。部署完成后,按钮将变为“执行”,再次点击可以手动执行部署脚本,此时如果脚本函数返回值不为空,则会推送相关消息到当前频道。
使用参考
脚本 default
函数
脚本 default
函数类型为 Script
,可以是普通的异步函数或异步生成器。
Script
接受两个参数,payload
和 context
:
payload
是用户通过 webhook 传入的参数。context
类型为 ScriptContext
。- 返回值(或
yield
值)为消息对象 ScriptMessage
,包含消息内容、链接、标签等。
脚本上下文 ScriptContext<TStorage extends object>
[源码]
ScriptContext
中最常用的是 storage
,该对象提供了 getItem(key)
和 setItem(key, value)
两个方法,可以用于存储脚本执行信息,经常被我们用来避免发送重复的消息或内容。
export default async function (payload, {storage}) {
let count = storage.getItem('count') ?? 1;
console.log(`这是脚本第 ${count} 次执行。`);
storage.setItem('count', count + 1);
return {
content: '你好,盯梢!',
};
}
脚本消息 ScriptMessage
[源码]
除了 content
之外都是可选参数。
export default async function (payload, context) {
if (nothingNew) {
return undefined;
}
return {
content: '消息内容。',
images: [
],
links: [
'https://www.dingshao.cn/',
{
url: 'https://script.dingshao.cn/',
description: '盯梢脚本编辑器',
},
],
tags: ['标签', '不存在将自动创建'],
};
}
本地开发
盯梢脚本支持本地开发构建后,通过 npm 发布到盯梢脚本 registry。
未完待续。