
A lightweight, type-safe Telegram Bot framework for Cloudflare Workers.
npm install @codebam/cf-workers-telegram-bot
import TelegramBot, { TelegramExecutionContext } from '@codebam/cf-workers-telegram-bot';
export interface Env {
SECRET_TELEGRAM_API_TOKEN: string;
}
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const bot = new TelegramBot(env.SECRET_TELEGRAM_API_TOKEN);
await bot
.command('start', async (ctx) => {
await ctx.reply('Hello! I am running on Cloudflare Workers.');
})
.onMessage(async (ctx) => {
await ctx.reply(`You said: ${ctx.text}`);
})
.handle(request);
return new Response('ok');
},
};
The consumer directory in this repository serves as a template for new projects. It is included as a git submodule.
Clone the repository with submodules:
git clone --recursive https://github.com/codebam/cf-workers-telegram-bot.git
Or, if you've already cloned it:
git submodule update --init --recursive
Copy the consumer directory:
cp -r consumer my-new-bot
cd my-new-bot
npm install
Configure your bot:
Update wrangler.toml with your worker name.
Set your Telegram Token: Get a token from @BotFather and add it to your worker:
npx wrangler secret put SECRET_TELEGRAM_API_TOKEN
Deploy:
npm run deploy
Set Webhook:
Visit the following URL in your browser to register your worker with Telegram:
https://<your-worker>.<your-subdomain>.workers.dev/<SECRET_TELEGRAM_API_TOKEN>/setWebhook
Use Wrangler to deploy:
npx wrangler deploy
To automate deployments, use the Wrangler Action or Cloudflare's built-in GitHub integration.
Detailed API documentation is available at cf-workers-telegram-bot.codebam.ca.
Apache-2.0