/start (начать сначала) или какой-нибудь /edit (допустим, исправить последний ответ) – это ответ на следующий по порядку вопрос. В базе данных сохраняйте под id пользователя его ответы, заполняя каждый раз следующий пустой вопрос, например. Эт. совсем упрощенно-колхозно.#!/bin/bash
BOT_TOKEN="12345:xxxxxxxxx"
curl \
--header "Content-Type: application/json" \
--request POST \
--data '{"description":""}' \
https://api.telegram.org/bot${BOT_TOKEN}/setMyDescription chat_id Integer or String Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
/make_me_admin"chat_member" в списке allowed_updates.chat_member в котором содержится объет ChatMemberUpdated в поле invite_link которого объект ChatInviteLink. В нём наверное интересует поле invite_link (строка) и поле creator (User, который создал ссылку).update.chat_member.invite_link.invite_link doPost(), которая будет вызываться при каждом входящем сообщении боту. Подробнее про Web Apps.const TG = new TelegramClient(TELEGRAM_BOT_TOKEN);
const url = ScriptApp.getService().getUrl();
const response = TG.setWebhook(url);
const result = JSON.parse(response);
const output = { url, result };
console.log(result);via_botюзер <—> tg bot <—> оператор[userId, msgId] – которая видна только в диалоге Оператора с ботом.UserA (A) -> bot: привет, у меня вопрос
bot -> Operator (O): [12345, 1] привет, у меня вопрос
UserB (B) -> bot: почему ничего не работает?
bot -> Operator (O): [98765, 1] почему ничего не работает?
O -> bot, ответом на первое: что за вопрос?
bot -> A ответом на "привет": что за вопрос?
O -> bot, ответом на второе: всё сломалось, чиним.
bot -> B ответом на "почему": всё сломалось, чиним.chat_join_request содержит объект ChatJoinRequest,const params = new URLSearchParams(window.location.search);
const data = params.get('data'); // "data-hash"См. Location.search и URLSearchParams сtx.telegram
.sendPhoto(
ctx.chat.id,
ctx.message.photo[0].file_id,
{ caption: s, parse_mode: 'HTML', reply_markup: markup }
)telegram.sendPhoto() (исходник) передаётся через функцию fmtCaption() (код) в api тележки, и доп. параметры помимо caption должны пройти без изменений. disable_web_page_preview в методе sendMessage()