Integrating Botality Telegram Bot Analytics with grammY


To integrate Botality's analytics into your Telegram bot using the grammY framework, follow these steps: 


1. Set Up Your grammY Bot
 


First, ensure you have a working grammY bot. If you haven't created one yet, follow these steps:

Create a New Bot: Contact @BotFather on Telegram to create a new bot and obtain its unique token.

Initialize a Node.js Project: Set up a new Node.js project and install grammY:

npm init -y
npm install grammy

Create the Bot Script: In your project directory, create a file (e.g., bot.js) and initialize the bot:

const { Bot } = require('grammy');
const bot = new Bot('YOUR_BOT_TOKEN'); // Replace with your bot token

bot.on('message', (ctx) => {
  ctx.reply('Message received!');
});

bot.start();


2. Integrate Botality Analytics

To send message data to Botality for analytics, you'll need to make HTTP POST requests to Botality's API endpoint each time your bot receives a message.

Install Axios: We'll use Axios to handle HTTP requests. Install it using:

npm install axios

Modify the Bot Script: Update your bot script to include Axios and send message data to Botality:

const { Bot } = require('grammy');
const axios = require('axios');

const bot = new Bot('YOUR_BOT_TOKEN'); // Replace with your bot token
const botalityToken = 'YOUR_BOTALITY_TOKEN'; // Replace with your Botality token
const botalityEndpoint = 'https://botality.cc/api/v1/messages';

bot.on('message', async (ctx) => {
  // Reply to the user
  await ctx.reply('Message received!');

  // Prepare data for Botality
  const messageData = {
    token: botalityToken,
    data: {
      message_id: ctx.message.message_id,
      from: {
        id: ctx.message.from.id,
        is_bot: ctx.message.from.is_bot,
        username: ctx.message.from.username,
      },
      date: ctx.message.date,
      text: ctx.message.text,
    },
  };

  // Send data to Botality
  try {
    await axios.post(botalityEndpoint, messageData, {
      headers: {
        'Content-Type': 'application/json',
      },
    });
    console.log('Message data sent to Botality.');
  } catch (error) {
    console.error('Error sending data to Botality:', error);
  }
});

bot.start();


3. Run Your Bot
 
Start your bot by running:
 
node bot.js


Your bot will now send message data to Botality's analytics service each time it receives a message.
 
Additional Resources

grammY Documentation: For more details on using grammY, refer to the official documentation.

Botality API Integration: For comprehensive information on Botality's API, visit their API integration guide.


By following these steps, you can effectively integrate Botality's analytics into your Telegram bot built with grammY.