{"id":18018903,"url":"https://github.com/tsuk1ko/cfworker-middleware-telegraf","last_synced_at":"2025-03-28T18:32:26.119Z","repository":{"id":57196403,"uuid":"263952022","full_name":"Tsuk1ko/cfworker-middleware-telegraf","owner":"Tsuk1ko","description":"Make telegraf (a telegram bot framework) useable in Cloudflare Workers","archived":true,"fork":false,"pushed_at":"2022-08-31T13:56:10.000Z","size":52,"stargazers_count":65,"open_issues_count":2,"forks_count":14,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-19T06:41:34.127Z","etag":null,"topics":["cfworker","cloudflare","cloudflare-workers","telegraf","telegram","telegram-bot"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/cfworker-middleware-telegraf","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tsuk1ko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-14T15:25:19.000Z","updated_at":"2024-12-09T17:47:22.000Z","dependencies_parsed_at":"2023-01-16T17:15:46.241Z","dependency_job_id":null,"html_url":"https://github.com/Tsuk1ko/cfworker-middleware-telegraf","commit_stats":null,"previous_names":["tsuk1ko/cfworker-middware-telegraf"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tsuk1ko%2Fcfworker-middleware-telegraf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tsuk1ko%2Fcfworker-middleware-telegraf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tsuk1ko%2Fcfworker-middleware-telegraf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tsuk1ko%2Fcfworker-middleware-telegraf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tsuk1ko","download_url":"https://codeload.github.com/Tsuk1ko/cfworker-middleware-telegraf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246080954,"owners_count":20720621,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cfworker","cloudflare","cloudflare-workers","telegraf","telegram","telegram-bot"],"created_at":"2024-10-30T05:06:42.371Z","updated_at":"2025-03-28T18:32:24.981Z","avatar_url":"https://github.com/Tsuk1ko.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cfworker-middleware-telegraf\n\n[![Version](https://img.shields.io/npm/v/cfworker-middleware-telegraf.svg?style=flat-square)](https://www.npmjs.com/package/cfworker-middleware-telegraf)\n\nMake [telegraf](https://github.com/telegraf/telegraf) (a telegram bot framework) useable in [Cloudflare Workers](https://workers.cloudflare.com/).\n\nYou can use [cfworker-telegraf-template](https://github.com/Tsuk1ko/cfworker-telegraf-template) directly.\n\n\u003e v2 only support for telegraf@4. If you want to use telegraf@3, please downgrade to v1.\n\n## Installation\n\n```bash\nnpm i cfworker-middleware-telegraf\n```\n\n## Usage\n\n### 0. Install dependencies\n\nHere we use webpack 5.\n\n```bash\nnpm i @cfworker/web telegraf cfworker-middleware-telegraf\nnpm i -D webpack webpack-cli node-polyfill-webpack-plugin\n```\n\n### 1. Write your code\n\n```js\n// index.js\nconst { Telegraf } = require('telegraf');\nconst { Application, Router } = require('@cfworker/web');\nconst createTelegrafMiddleware = require('cfworker-middleware-telegraf');\n\nconst bot = new Telegraf(self.BOT_TOKEN);\n\n// Your code here, but do not `bot.launch()`\n// Do not forget to set environment variables BOT_TOKEN and SECRET_PATH on your worker\n\nconst router = new Router();\nrouter.post(`/${self.SECRET_PATH}`, createTelegrafMiddleware(bot));\nnew Application().use(router.middleware).listen();\n```\n\n### 2. Webpack your code and upload to cfworker\n\n```js\n// webpack.config.js\nconst path = require('path');\nconst NodePolyfillPlugin = require('node-polyfill-webpack-plugin');\n\nmodule.exports = {\n  entry: path.resolve(__dirname, 'index.js'),\n  target: 'webworker',\n  output: {\n    filename: 'worker.js',\n    path: path.resolve(__dirname, 'dist'),\n  },\n  mode: 'production',\n  resolve: {\n    fallback: {\n      fs: false,\n    },\n  },\n  plugins: [new NodePolyfillPlugin()],\n  performance: {\n    hints: false,\n  },\n};\n```\n\n```bash\nnpx webpack -c webpack.config.js\n```\n\nJust copy and paste built code `dist/worker.js` to cfworker online editor and save.\n\nOr you can use [Wrangler](https://developers.cloudflare.com/workers/cli-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.\n\n### 3. Set telegram bot webhook\n\nThese codes only need to be run once locally.\n\n```js\nconst { Telegraf } = require('telegraf');\nconst bot = new Telegraf('YOUR_BOT_TOKEN');\n\n(async () =\u003e {\n  // set webhook\n  await bot.telegram.setWebhook('https://your.cfworker.domain/YOUR_SECRET_PATH');\n\n  // delete webhook\n  // await bot.telegram.deleteWebhook();\n\n  // get webhook info\n  await bot.telegram.getWebhookInfo().then(console.log);\n})();\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsuk1ko%2Fcfworker-middleware-telegraf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsuk1ko%2Fcfworker-middleware-telegraf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsuk1ko%2Fcfworker-middleware-telegraf/lists"}