Как организовать автоматическую пересылку номера телефона администратору через бота в Телеграм?

  • 7 августа 2023 г. 9:51
Ответы на вопрос 4
Для организации автоматической пересылки номера телефона администратору через бота в Телеграм вам потребуется создать бота, которому пользователь сможет передать свой номер телефона, который затем этот бот перешлет администратору. 

1. Создание бота:

Самый простой способ создать бота - воспользоваться @BotFather в Телеграме. Пройдите процесс создания нового бота, сохраните его уникальный токен API.

2. Написание кода бота:

Вам потребуется написать код бота, который будет использовать API Telegraf (или аналогичный) для обработки сообщений от пользователей. В нашем случае бот будет просить пользователя предоставить свой номер телефона.

Пример запроса номера телефона на Node.JS с использованием Telegraf:

```js
const Telegraf = require('telegraf');
const Extra = require('telegraf/extra');
const Markup = require('telegraf/markup');
  
const bot = new Telegraf(process.env.BOT_TOKEN);
  
bot.start((ctx) => ctx.reply('Добро пожаловать, пожалуйста, предоставьте ваш номер телефона:'));
  
bot.hears(/.*/, ctx => {
    return ctx.reply('Can I get your phone number?', Markup
        .keyboard([
            Markup.contactRequestButton('Send my number')
        ])
        .oneTime()
        .resize()
        .extra()
    )
});
```

3. Пересылка номера телефона администратору:

Добавьте код, который будет пересылать номер телефона администратору после его получения от пользователя. Проще всего это сделать с помощью метода `forwardMessage`, предоставляемого Telegram API.

```js
bot.on('contact', (ctx) => {
    ctx.telegram.forwardMessage(YOUR_ADMIN_CHAT_ID, ctx.message.chat.id, ctx.message.message_id);
});
```

Обратите внимание, что в данной инструкции предполагается, что вы уже имеете определенные знания и навыки в программировании. Если вы новичок, вам может понадобиться более подробное руководство или помощь опытного разработчика.
@router.message(F.contact)
async def cmd_test_send(message: Message):
    await message.copy_to(chat_id=(административный чат айди)) 
 отправьте сообщение администратору.
@router.message(F.contact)
async def cmd_test_send(message: Message):
    # Найдена ошибка в данном коде
    # Исправленный код:
    await message.copy_to(chat_id=(чат айди админа))
Похожие вопросы