Skip to main content

Create Telegram Bot - NextJS and Hosting on Vercel - Free

Title: Building a Telegram Bot with Next.js, GitHub, and Vercel

Creating a Telegram bot with Next.js and deploying it on Vercel is a great way to build interactive bots quickly. In this tutorial, we'll take it a step further by organizing our project structure and enabling deployment through GitHub and Vercel's user-friendly UI.

Prerequisites:

  • Basic knowledge of JavaScript and Node.js
  • Understanding of REST APIs and webhook concepts
  • Telegram account
  • GitHub account
  • Vercel account

Step 1: Set up Telegram Bot

  1. Create a new bot on Telegram using BotFather and obtain the bot token.

Step 2: Initialize a Next.js Project

  1. Install Node.js if you haven't already.
  2. Initialize a new Next.js project:
    npx create-next-app my-telegram-bot
    
  3. Navigate to your project directory:
    cd my-telegram-bot
    

Step 3: Organize Project Structure

  1. Create a folder named src in your project directory.
  2. Inside the src folder, create a folder named api.
  3. Inside the api folder, create a file named telegram.js.

Step 4: Write Telegram Bot Code

  1. Open src/api/telegram.js and add the following code:

    import { Telegraf } from 'telegraf';
    
    const bot = new Telegraf(process.env.TELEGRAM_BOT_TOKEN);
    
    bot.on('text', (ctx) => {
      ctx.reply('Hello! You said: ' + ctx.message.text);
    });
    
    bot.telegram.setWebhook(`https://${process.env.VERCEL_URL}/api/telegram`);
    
    export default async (req, res) => {
      await bot.handleUpdate(req.body, res);
    };
    

Step 5: Deploy to GitHub

  1. Initialize a git repository in your project directory:
    git init
    
  2. Add your files to the repository and commit:
    git add .
    git commit -m "Initial commit"
    
  3. Create a new repository on GitHub.
  4. Link your local repository to the remote GitHub repository:
    git remote add origin <GitHub repository URL>
    
  5. Push your code to GitHub:
    git push -u origin main
    

Step 6: Deploy to Vercel

  1. Sign in to your Vercel account.
  2. Import your project from GitHub.
  3. Follow the prompts to deploy your project.
  4. Set the environment variable TELEGRAM_BOT_TOKEN to your bot token in the Vercel dashboard.

Step 7: Set Webhook URL

  1. Use curl or any other method to set the webhook URL to your current page api/telegram.js:
    curl -F "url=https://your-vercel-url.vercel.app/api/telegram" https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook
    
    Replace your-vercel-url with your Vercel project URL and <YOUR_BOT_TOKEN> with your actual bot token.

Step 8: Test Your Telegram Bot

  1. Start a conversation with your bot on Telegram.
  2. Send a message, and you should receive a response from your bot echoing your message.

Congratulations! You've successfully created a Telegram bot using Next.js, organized your project structure, deployed it on GitHub and Vercel, and set up the webhook for message handling. You can now further customize your bot's functionality and interaction based on your requirements.

Comments

Popular posts from this blog

Git Conflict Guide 🚀

What is a Git Conflict? A Git conflict occurs when two branches have changed the same part of a file, and Git cannot automatically merge the changes. When you attempt to merge or rebase branches, Git will pause the process and mark the conflicted files. Steps to Resolve a Git Conflict 1. Identify Conflicted Files When you encounter a conflict, Git will mark the conflicted files. You can see these files by running: git status Enter fullscreen mode Exit fullscreen mode 2. Open the Conflicted File Open the conflicted file(s) in your code editor. You'll see Git's conflict markers: <<<<<<< HEAD Your changes ======= Incoming changes >>>>>>> branch-name Enter fullscreen mode Exit fullscreen mode <<<<<<< HEAD marks the beginning of your changes. ======= separates your changes...

FamilyAlbum - Free Unlimited Storage - Share Family Photos and Videos - Auto-Organized Album

Website :- https://family-album.com Play Store :- https://play.google.com/store/apps/details?id=us.mitene Description from Play Store The best way to safely share and organize your family’s photos and videos. Unlimited storage, no ads, and it’s free! 3 Reasons to Start Your Album: 1) You’ll love it YOUR MEMORIES ON DISPLAY. Show off your photos and videos in a way that’s both beautiful and intuitive. Everything is automatically sorted by month, complete with your child’s age. Just swipe the screen to go back in time! UNLIMITED STORAGE. Back up all your memories for free. STREAMLINED SHARING. No more sharing the same photo with five different group chats. All your photos, all your videos, all your favorite people, all in one place. YOUR PRIVACY IS OUR PRIORITY. Your album is completely private. All content you upload to the app belongs to you, and it can only be viewed by you and the family and friends you invite. That also ...

Random Posts