zven_rm, Вот тут опять же, сначала основы изучайте. Интерпретатор пробегает по всем условиям сверху-вниз, пока не дойдет до того, которое выполняется. В вашем случае при проверке первого же условия словил ошибку. А ошибку словил из-за невозможности сравнить число и строку. И условие у вас в итоге не выполняется. Гуглите преобразование типов.
У вас запускается user_subs(), хотя описана только user_subs1()
conn.commit() идет после return, это вообще норма? Какая логика закладывалась в этого бота? Что он должен делать? Какие команды вводили? /start /start ?
Не очень понятно какой функционал вы хотите реализовать. callback_query_handler используется для работы с inline клавиатурой. У вас она как-либо задействована? Пока что не видно какого-либо смысла в представленном коде. Что вы хотите сделать?
При обращении пользователя к боту получаете ID пользователя, делаете запрос в БД, получаете группу пользователя и в зависимости от номера группы выдаете меню.
Не понятно что конкретно у вас не получается? Не знаете как написать запрос к БД?
Учитывая ваши скриншоты, вы умеете заполнять Базу данных. Или все это было введено вручную?
Дайте больше конкретики о том, что у вас не получается.
Роман, Могу описать что приходит на ум в первую очередь:
В любом случае придется пользоваться какой-либо БД для учета пользователей и операторов поддержки.
При нажатии на кнопку "позвать оператора", бот рассылает сообщение всем операторам с предложением заняться вопросом. Допустим оператор Иван принял запрос и теперь все, что Иван отправляет этому боту, бот перенаправляет пользователю. Пользователь получает от бота сообщение вида "Оператор Иван: <Текст сообщения>".
Пользователь так же пишет боту и тот отправляет сообщение оператору Ивану.
Как это может быть в закулисье: В БД в таблице с пользователями прописываете текущее состояние беседы. Либо просто общение с ботом, либо разговор с оператором. Тогда нужно будет добавить еще одну колонку с ID оператора. При отправке каждого сообщения, в БД будет выполняться запрос на текущее состояние. Если это общение с оператором, то смотрим с каким и отправляем ему полученное сообщение.
Выйти из режима диалога с оператором можно например по команде, которую можно прописать через BotFather.
Это так, сырые наброски идеи. Сначала лучше довести ее до ума, продумать все тонкости, например может ли быть у оператора сразу несколько диалогов с разными пользователями, если да, то как это будет выглядеть. Если придумаете как это будет выглядеть, то можно будет приступать к реализации.
По поводу библиотеки - telebot вполне годная либа, на ней можно все это организовать. Функций придется использовать много, и не только из этой библиотеки, т.к. для решения вашей задачи без Базы Данных не обойтись, а для работы с ней нужны отдельные библиотеки, например sqlite3.
Перечислить конкретные функции не предоставляется сейчас возможным, т.к. их будет много. Конкретной функции для реализации всего вышеописанного попросту нету.
Для новичка в программировании вы взялись за достаточно сложный проект. Посоветовал бы вам больше изучать базу.
Тестируете на личном чате с ботом? Или бот добавлен в групповой чат?
Вопрос может и глупый, так как код выше - копипаста с урока из сети, где написано, что работать будет только при личном чате с ботом. но все равно задать его надо было.
Скопировал ваш код, все работает. Проблема не в коде, если это весь код, если ничего не вырезали прежде чем сюда отправлять. Может там какой-то хэндлер перехватывает ваше сообщение с локацией до @bot.message_handler(content_types=['location']) .
Уже второй раз этот вопрос присылаете. Я уже предлагал варианты решения. Пробовали? Если да, то покажите как реализовали. предоставьте код. Только не скринами как в прошлый раз, а как положено
Азама Ваниев, я лишь предложил попробовать в send_photo передать и сообщение и markup с кнопками. Кнопки должны выводиться внизу. И переделайте уже свой вопрос, удалите скриншоты с кодом, вставьте код текстом через тег
TrickyOstrich, в исходниках этой либы на гитхабе можно много интересного найти. Например, что передача сообщения в первом параметре register_next_step_handler нужно лишь для получения ID чата. Дальше все выполнение всех процедур переходит в register_next_step_handler_by_chat_id c ID чата вместо сообщения. Так что можно использовать сразу эту функцию.