11ff 中文文档教程
cfworker-middware-telegraf
使 telegraf(电报机器人框架)可用于 < a href="https://workers.cloudflare.com/">Cloudflare Workers。
Installation
npm i cfworker-middware-telegraf
Usage
1. Write your code
// index.js
const { Telegraf } = require('telegraf');
const { Application, Router } = require('@cfworker/web');
const createTelegrafMiddware = require('cfworker-middware-telegraf');
const bot = new Telegraf('BOT_TOKEN');
// Your code here, but do not `bot.launch()`
const router = new Router();
router.post('/SECRET_PATH', createTelegrafMiddware(bot));
new Application().use(router.middleware).listen();
2. Webpack your code and upload to cfworker
// webpack.config.js
module.exports = {
target: 'webworker',
entry: './index.js',
mode: 'production',
node: {
fs: 'empty',
},
module: {
rules: [
{
test: /\.mjs$/,
include: /node_modules/,
type: 'javascript/auto',
},
],
},
performance: {
hints: false,
},
};
只需将构建的代码复制并粘贴到 cfworker 在线编辑器并保存。
或者您可以使用官方 CLI 工具 Wrangler,因此您无需再手动复制和粘贴代码. 但我不喜欢它,因为它在 Win10 上有莫名其妙的错误。
3. Set telegram bot webhook
这些代码只需要在本地运行一次。
const Telegraf = require('telegraf');
const bot = new Telegraf('BOT_TOKEN');
// set webhook
bot.telegram.setWebhook('https://your.cfworker.domain/SECRET_PATH');
// delete webhook
// bot.telegram.deleteWebhook();
// get webhook info
// bot.telegram.getWebhookInfo().then(console.log);
cfworker-middware-telegraf
Make telegraf (a telegram bot framework) useable in Cloudflare Workers.
Installation
npm i cfworker-middware-telegraf
Usage
1. Write your code
// index.js
const { Telegraf } = require('telegraf');
const { Application, Router } = require('@cfworker/web');
const createTelegrafMiddware = require('cfworker-middware-telegraf');
const bot = new Telegraf('BOT_TOKEN');
// Your code here, but do not `bot.launch()`
const router = new Router();
router.post('/SECRET_PATH', createTelegrafMiddware(bot));
new Application().use(router.middleware).listen();
2. Webpack your code and upload to cfworker
// webpack.config.js
module.exports = {
target: 'webworker',
entry: './index.js',
mode: 'production',
node: {
fs: 'empty',
},
module: {
rules: [
{
test: /\.mjs$/,
include: /node_modules/,
type: 'javascript/auto',
},
],
},
performance: {
hints: false,
},
};
Just copy and paste built code to cfworker online editor and save.
Or you can use Wrangler, an official CLI tool, so you don't need to copy and paste code manually anymore. But I don't like it due to its inexplicable bugs on Win10.
3. Set telegram bot webhook
These codes only need to be run once locally.
const Telegraf = require('telegraf');
const bot = new Telegraf('BOT_TOKEN');
// set webhook
bot.telegram.setWebhook('https://your.cfworker.domain/SECRET_PATH');
// delete webhook
// bot.telegram.deleteWebhook();
// get webhook info
// bot.telegram.getWebhookInfo().then(console.log);