|
1 / 1 / 1
Регистрация: 11.05.2012
Сообщений: 92
|
|||||||||||
Telegram API Структура файла24.07.2023, 00:51. Показов 1259. Ответов 4
Метки нет (Все метки)
Граждане. Я немного запутался, но хочу разобраться.
Делаю для сервиса бота, который будет работать с авторизованными (по номеру телефона) пользователями. Есть обработчик входящих запросов. Там то я и запутался немного. Я хочу получить примерно такую структуру:
Верна ли будет данная структура или ее как-то можно улучшить? Добавлено через 1 час 44 минуты Так же дополню вопрос. Допустим есть регионы. В каждом регионе магазины, в каждом магазине - товар. На запрос по конкретному региону мне надо выводить список магазинов. При клике на магазин - выводить список товаров. Для начала я беру данные по регионам из базы:
/region77 (расшифровка региона) /region78 (расшифровка региона) Как мне лучше "ловить" эти ссылки в своем обработчике входящих команд, что бы дальше выдать список магазинов по конкретным регионам? На ум идет только ловить по "стоп-слову" region и убирать его. В итоге останется нужный регион, с которым уже работать дальше (с товарами, соответственно, аналогично). И второй вопрос, что бы два раза не вставать: Как организовать, например, отзывы от пользователей на конкретный товар? То есть пользователь должен отправить команду в духе "хочу оставить отзыв на товар" и передать боту id товара. Далее бот ждет сообщения и он должен его правильно соотнести с конкретным товаром. Видимо где-то надо хранить "статус бота". Типа следующее сообщение от этого пользователя будет с отзывом на товар **. Тут просто прошу помощи в организации логики работы с ботом. По первому сообщению в этой теме мой бот работает только с входящими командами. Если нет команды - выводит просто меню с основными командами бота. Добавлено через 3 часа 37 минут блин. Сорян. Это раздел с апи. Сюда про логику вопрос не лезет. Могут модеры перенести тему в раздел выше?
0
|
|||||||||||
| 24.07.2023, 00:51 | |
|
Ответы с готовыми решениями:
4
Структура файла Структура файла Структура из файла |
|
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,950
|
||
| 25.07.2023, 13:32 | ||
|
В целом по вашей теме: изучите API телеграм-бота и часть вопросов отпадет.
Любой пользователь подключивший телеграм регистрирует его по номеру телефона, соответственно есть команда поделится контактом, вот на нее и опирайтесь для регистрации(сохраняйте в БД); данные в бот передаются либо путем команд либо текстом, вот соответственно на это и разделите всё - пришла команда или текст ну далее if...else.. другой логики нет;
0
|
||
|
1 / 1 / 1
Регистрация: 11.05.2012
Сообщений: 92
|
||||||||||
| 25.07.2023, 22:14 [ТС] | ||||||||||
Пользователь нажимает на /оставить_отзыв. В его профиль в базу записывается json с данными: на какой id идет отзыв, метка времени написания отзыва, ну и какая-то метка, что это отзыв. Типа такого конструкция получиться должна:
Пошагово это должно быть как-то так: - пользователь нажимает на "написать отзыв на товар". Это ссылка вида /review53 (где 53 это id). Данные (json) заносятся в поле пользователя в базе. - Пользователю улетает от бота сообщение "отправьте мне сообщение с отзывом". - пользователь пишет обычное сообщение и отправляет его боту - обработчик каждый раз проверяет заполненность поля в базе (да, это лишняя нагрузка и порожний запрос, но в век современных технологий считаю достаточно малой ценой за получаемый функционал). Если поле не NULL, то по типу 'review' запускает необходимый блок кода. А в этом блоке кода мы берем пришедшее сообщение и записываем его в таблицу отзывов (или любые другие манипуляции) - если успешно записали, то очищаем поле в таблице, что бы скрипт не ждал входящее сообщение. ps метка времени чисто опциональная история. Человек всегда видит на каком этапе остановился диалог и может его продолжить. Но если надо, то смотрим, сколько прошло времени. IF более, чем n, ELSE ... и так далее. Не вижу, если честно, необходимости привязки ко времени, но это уже каждый сам решает. Как думаешь - удачное решение? *про реализацию отзывов
0
|
||||||||||
|
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,950
|
||||
| 26.07.2023, 09:29 | ||||
|
Тогда У меня так сделано: каждый запрос в бота проверяет таблицу - есть ли там ID-телеграма от которого пришло сообщение, нету - отправляю кнопку "авторизоваться", это вызов поделиться контактом, и остальной функционал вообще не трогаю Если есть, то уже выдаю меню авторизованного или принимаю и обрабатываю команды. В итоге пока оставил черновой вариант начинать текст со слов "Вопрос:", "Отзыв ID если идет на товар)"... Тоже не очень удобно из-за перекладывания на клиента, ему приходится писать больше, но зато он всегда может не зависимо от того, что было набрано до этого написать в нужном ключе.
0
|
||||
|
1 / 1 / 1
Регистрация: 11.05.2012
Сообщений: 92
|
|
| 26.07.2023, 11:06 [ТС] | |
|
Кстати. Под сообщением от бота "напишите отзыв" можно присылать кнопку "отмена". Но это тоже такое себе решение.
0
|
|
| 26.07.2023, 11:06 | |
|
Помогаю со студенческими работами здесь
5
Структура из файла
Структура из файла Структура из файла Структура файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|