Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Захватывающая аркада-лабиринт по мотивам культовой игры восьмидесятых. Управляйте желтым человечком, ешьте кексы и постарайтесь не попадаться на глаза призракам.

Пикман

Аркады, На ловкость, 2D

Играть

Топ прошлой недели

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
3
Nichteye121
Nichteye121
4 месяца назад
Программирование на python

Видос про телеграм бота с джангой⁠⁠

супер простой бот, который инициализирует бота в бд

[моё] YouTube Программирование Python Джанго Telegram Bots Видео
0
7
writernotes
writernotes
11 месяцев назад
ИТ-проекты пикабушников

Я создал телеграм бота (FYTT), который ищет телеграм каналы всех ваших подписок на ютубе⁠⁠

Бот - https://t.me/FYTTproject_bot

Проснулся, улыбнулся, прочитал о том, что YouTube замедляют, снова улыбнулся, зашел на YouTube — не работает. Перестал улыбаться, начал думать, что можно круто сделать по этому поводу. Увидел, что все байтят перейти в их Telegram (вот, кстати, мой), и появилась идея создать бота, который получает список подписок пользователя на YouTube, ищет Telegram-каналы всех подписок и выдает их пользователю списком, чтобы он не потерял любимых авторов. Думаю, идея нормальная — хитом, конечно, не станет, но в первую очередь делал для опыта.

До этого я, конечно, создавал ботов. По сути, я умел все, что нужно для проекта:

  • Работа с базой данных (использую MongoDB, в профессиональном сообществе её немного хейтят, но ладно).

  • Основной язык — Node.js + фреймворк telegraf.js.

  • Работа с Google API (YouTube API, в частности) — делал авторизацию для сайта с цитатами (недоделал, к сожалению, лежит уже год полумёртвым. Если есть гениальные идеи сделать лучший сайт с цитатами, пишите мне, покреативим).

Да, в принципе, это всё, что нужно по стеку.

Так как делал проект на полном вайбе, под музыку, конечно, никакой логики не прописал, но решил затестить, что сможет сделать ChatGPT — и не зря. Он написал основной код, логика которого мне понравилась. Разумеется, чтобы его запустить, нужно было сделать кучу правок, а чтобы он заработал — многое переписать. Но в целом я оказался доволен работой ChatGPT — это реально будущее. Причём я осознал, что он смог выдать нормальный код лишь потому, что я сам чётко понимал, как будет работать бот. А значит, программисты ещё долго будут мучиться на своих креслах, работая на корпорации.

Итак, в первой версии бота была авторизация, которая не работала.

Во второй версии появилась авторизация, которая заработала.

В третьей версии основной функционал заработал, но идея не была раскрыта, так как бот искал ссылки на Telegram-каналы ютуберов из моей базы данных, в которой было всего 3 канала — что, конечно, никуда не годилось. Тогда я быстро понял, что почти все YouTube-каналы оставляют в описании ссылки на свои Telegram-каналы, а значит, взять их — дело лёгкое, верно?

Ах да. YouTube API аж 3-й версии не способен получать ссылки каналов... Это же чуть ли не базовая функция API — получать всё, что написано на странице.

Благо нашёлся энтузиаст, который уже сделал своё API — yt.lemnoslife.com, где это хорошо реализовано. Респект автору огромный.

Ну и после этого последовал миллион фиксов багов и непоняток, потому что я неопытный и слабый разработчик. В итоге всё работает, но появилась другая проблема: бот запрашивает конфиденциальные данные пользователя — список его подписок, а значит, Google просто так не даст их получать тому, о ком ничего не знает. (Для тестов можно добавлять тестового пользователя).

Чтобы Google тебя одобрил, нужен сайт с главной страницей и политикой конфиденциальности.

«Кайф», — подумал я.

На самом деле заглушку сделать очень просто (домен, правда, пришлось покупать), вопрос был в содержании.

Первый раз Google не понравился логотип моего приложения, потому что он «не отражает индивидуальность» (или как-то так, короче, наверное, потому что слишком хорошо читается логотип YouTube и Telegram, с чем я согласен).

Я создал телеграм бота (FYTT), который ищет телеграм каналы всех ваших подписок на ютубе Telegram (ссылка), Google, Приложение, YouTube (ссылка), Инструкция, Бот, Telegram бот, Bots, Разработка, Веб-дизайн, Гайд, Информационная безопасность, Личный опыт, Чат-бот, Сервис, Сайт, Домен, Видео, YouTube, Длиннопост

Смысл: Телеграм поглощает ютуб / Ютуб сгорает, а там телеграм

Тогда я решил показать всю свою харизму и индивидуальность:

Я создал телеграм бота (FYTT), который ищет телеграм каналы всех ваших подписок на ютубе Telegram (ссылка), Google, Приложение, YouTube (ссылка), Инструкция, Бот, Telegram бот, Bots, Разработка, Веб-дизайн, Гайд, Информационная безопасность, Личный опыт, Чат-бот, Сервис, Сайт, Домен, Видео, YouTube, Длиннопост

FYTT - FromYoutubeToTelegram, что и написано на фоне

Этот они приняли. 🥳

Далее Google не понравилась политика, которую написал ChatGPT. Они жёстко написали: мол, «в вашей политике сказано, что Google продаёт данные пользователей». Я перечитал и такого там не увидел. Закинул в ChatGPT, он всё пофиксил, и наконец меня одобрили.

Далее я всё релизнул, украсил, фиксил баги неделю-две и решил рассказать об этом людям, сделав два забавных Shorts.

На данный момент моим ботом воспользовались 37 человек, но многие просто тыкнули /start и больше не заходили — что обидно :(

Кому интересно:
Бот - https://t.me/FYTTproject_bot
Исходный код - VitoSperansky/FromYoutubeToTelegram: Бот для поиска телеграмм каналов всех ютуберов, на которые вы подписаны в "два клика". (github.com)
Сайт - fytt.tech:3000 (порт 3000, потому что порты ниже 1024 поумолчанию закрыты для установки серверов, их можно открыть, но это угроза безопасности. По-хорошему мне надо было сделать переадресацию с 443 порта (он дефолтный для https сайтов, поэтому скрыт в поисковой строке и пользователи его не видят) с помощью ngrok например, но я не стал тратить силы, так это все равно заглушка для гугла).
Связаться со мной по предложениям/вопросам или просто - https://t.me/vitosperansky

Показать полностью 2 2
[моё] Telegram (ссылка) Google Приложение YouTube (ссылка) Инструкция Бот Telegram бот Bots Разработка Веб-дизайн Гайд Информационная безопасность Личный опыт Чат-бот Сервис Сайт Домен Видео YouTube Длиннопост
2
39
Txtexe
1 год назад

Новые майнинг-фермы на хомяках⁠⁠

Майнинг Хомяк Вертикальное видео Телефон Bots Telegram бот Видео Hamster Kombat Ферма майнинга
33
13
Deementor87
Deementor87
2 года назад
Лига Художников

Mini Robots⁠⁠

Mini Robots Дрон, Bots, Робот, Техника, Рисунок, Научная фантастика, Цифровой рисунок, 2D, Персонажи, Длиннопост
Mini Robots Дрон, Bots, Робот, Техника, Рисунок, Научная фантастика, Цифровой рисунок, 2D, Персонажи, Длиннопост
Mini Robots Дрон, Bots, Робот, Техника, Рисунок, Научная фантастика, Цифровой рисунок, 2D, Персонажи, Длиннопост
Показать полностью 3
[моё] Дрон Bots Робот Техника Рисунок Научная фантастика Цифровой рисунок 2D Персонажи Длиннопост
2
exoneb
2 года назад

Приветствую, друзья! Сегодня я расскажу вам о том, как мы создали бота, который отвечает на статьи из Хабра, используя ChatGPT⁠⁠

Сразу посмотреть результат!

ChatGPT - это модель генерации текста, разработанная командой OpenAI. Эта модель использует алгоритмы машинного обучения для генерации текста, который похож на текст, написанный человеком. ChatGPT обучена на миллионах текстовых данных и может генерировать ответы на основе предоставленного

Шаг 1: Настройка телеграмм бота

Первым шагом в создании нашего бота была настройка телеграмм бота. Мы зарегистрировали нового бота в телеграмме и получили API-ключ, который необходим для общения с телеграмм API и отправки сообщений через бота.

Шаг 2: Получение данных из Хабра

Для получения текста последней статьи с Хабра мы использовали парсинг веб-страницы. Мы написали скрипт, который каждые 60 минут парсит страницу с последними статьями Хабра и получает текст последней опубликованной статьи.

Шаг 3: Использование ChatGPT для генерации ответов

Для того, чтобы наш бот мог генерировать ответы на статьи из Хабра, мы использовали ChatGPT. Для работы с этой моделью мы использовали библиотеку OpenAI для Python, которая предоставляет интерфейс для работы с моделями генерации текста, включая ChatGPT.

Шаг 4: Реализация бота

Для реализации нашего бота мы использовали библиотеку Telebot для Python. Мы написали скрипт, который получает текст последней статьи с Хабра, использует ChatGPT для генерации ответа на основе текста статьи и отправляет ответ через телеграмм API.

Шаг 5: Автоматическая публикация ответов

Мы настроили бота на автоматическую публикацию ответов на созданный нами канал в телеграмме. Теперь каждый раз, когда бот генерирует ответ на новую статью из Хабра, он автоматически публикует его на канале, доступном для просмотра всем желающим.

В результате мы создали бота, который может генерировать ответы на основе текста последней статьи с Хабра, используя ChatGPT и автоматически публиковать ответы на канале в телеграмме. Этот бот может быть полезен для тех, кто хочет быть в курсе последних новостей и обсуждений на Хабре, но не имеет времени или возможности постоянно следить за сайтом.

Приветствую, друзья! Сегодня я расскажу вам о том, как мы создали бота, который отвечает на статьи из Хабра, используя ChatGPT Программирование, ChatGPT, Telegram, Бот, Bots, Длиннопост
Приветствую, друзья! Сегодня я расскажу вам о том, как мы создали бота, который отвечает на статьи из Хабра, используя ChatGPT Программирование, ChatGPT, Telegram, Бот, Bots, Длиннопост
Показать полностью 2
[моё] Программирование ChatGPT Telegram Бот Bots Длиннопост
2
2
rg.ceo
rg.ceo
2 года назад
IT News

Топики и треды в Телеграм⁠⁠

Telegram запустил топики - тематические подгруппы в группах от 200 участников и более. Функцию ждали давно: беспорядок и лавина сообщений снижают вовлеченность участников и качество общения, а треды не сильно помогали.

Официальный релиз


Новая функция позволяет создавать отдельные чаты внутри основной группы для тех или иных обсуждений. Для каждой такой темы можно отдельно настроить уведомления о новых сообщениях и быстро просмотреть в разделе «Общие медиа» медиафайлы, которые были опубликованы именно в ней.

Участники могут общаться в любых темах – от «Аниме» до «Ящериц», – используя весь арсенал привычных инструментов, в том числе опросы, закреплённые сообщения и ботов.

Возможность разделить общий чат на темы была создана специально, чтобы сделать удобнее обсуждения в больших группах. Опробовать темы можно в нашей демонстрационной публичной группе.

Администраторы могут включить темы в «Настройках группы» и выбрать, кому будет доступно создание тем, в разделе «Разрешения».

Как это работает


После добавления топиков группа фактически превращается в список тем для обсуждений, в которые можно вступать. По сути, форум.

Если открывать основную ссылку на группу, то открывается список тем. Например, https://t.me/ukladvc.

Топики и треды в Телеграм Telegram, Offtopic, Bots, Мессенджер, Телеграмма, Видео, Без звука, Длиннопост

Обычно сверху закрепляют топик с описанием или правилами чата.

По клику на ссылку сообщения из топика открывается сразу топик (не список). Например, https://t.me/ukladvc/41164.

Топики и треды в Телеграм Telegram, Offtopic, Bots, Мессенджер, Телеграмма, Видео, Без звука, Длиннопост

Изображением топика может быть эмодзи, на Telegram premium - и пользовательские эмодзи.

На десктопе пока не обновлено. Вместо топиков открывается обычный чат.

Топики и треды в Телеграм Telegram, Offtopic, Bots, Мессенджер, Телеграмма, Видео, Без звука, Длиннопост

Для топиков нельзя использовать группу, привязанную к каналу для комментариев. Обычно владельцы каналов выбирают: отвязать группу от канала и преобразовать в топик либо создать новую группу и ждать вступления 200 участников.

Участники могут переключать для себя вид группы: как топики или обычный вид.

Топики и треды в Телеграм Telegram, Offtopic, Bots, Мессенджер, Телеграмма, Видео, Без звука, Длиннопост

Можно включать и выключать уведомления топиков свайпом влево или долгим нажатием на тему.

По свайпу вниз (или долгим нажатием на описание) открывается поиск по всем топикам.

Топики и треды в Телеграм Telegram, Offtopic, Bots, Мессенджер, Телеграмма, Видео, Без звука, Длиннопост

Для сравнения: так выглядят треды, которые уже давно есть в Телеграм.

Топики и треды в Телеграм Telegram, Offtopic, Bots, Мессенджер, Телеграмма, Видео, Без звука, Длиннопост

В группах с топиками тредов нет. Вероятно, Телеграм их намеренно разделяет, и в группах с топиками нельзя будет открывать тред с ответами (replies) на сообщение.


Быстрый доступ к своим топикам и тредам


Топики и треды удобны, хотя и выглядят менее привычно чем в Discord или Slack. Вовлеченность и качество бесед точно повысится. Участники могут читать только то, что действительно интересно. Но хочется иметь быстрый доступ к "своим" топикам или тредам, а не переходить в группу и искать.


Для этого сделал бота @SaveLinkChatbot, в котором можно хранить список своих топиков и тредов. В принципе бот создан для хранения любых ссылок. Часто приходится сохранять полезную информацию, чтобы прочитать позже или держать под рукой.

Топики и треды в Телеграм Telegram, Offtopic, Bots, Мессенджер, Телеграмма, Видео, Без звука, Длиннопост

Для сохранения обычной ссылки, нужно просто отправить боту текст со ссылкой.

Для сохранения ссылки на топик, нужно открыть топик, копировать ссылку сообщения (можно первого), открыть бота и отправить ему текст со ссылкой.

Для сохранения ссылки на тред, нужно выбрать сообщение, долгим нажатием открыть опции и открыть "ответы" (view replies), копировать ссылку любого сообщения и отправить боту.

Ссылки можно добавлять в одну из категорий: topics (для топиков и тредов), to read, important. Названия можно поменять.


Команда Телеграм планирует до конца года выпустить дополнительные инструменты для организации общения, которые больше подойдут маленьким группам.

Показать полностью 7
[моё] Telegram Offtopic Bots Мессенджер Телеграмма Видео Без звука Длиннопост
0
76
SensaiKudisai
SensaiKudisai
3 года назад
MS, Libreoffice & Google docs

Команды в телеграм ботах⁠⁠

Снова привет)

В ботах часто используются команды вида “/command”, которые провоцируют бота на то или иное действие.

Кто уже создавал ботов мог видеть их в @botfather.

Команды в телеграм ботах Telegram, Telegram бот, Бот, Чат-бот, Bots, Google Таблицы, Javascript, Длиннопост

Давайте разберемся как создать этот список команд и присвоить каждой ту или иную функцию.


С созданием списка команд все довольно просто, это реализуется непосредственно в настройках бота через @BotFather:


1) Вводим команду /mybots

2) Видим список наших ботов

3) Выбираем тот бот, которому присвоим список команд

4) Кликаем Edit Bot

Команды в телеграм ботах Telegram, Telegram бот, Бот, Чат-бот, Bots, Google Таблицы, Javascript, Длиннопост

5) Кликаем Edit Commands

Команды в телеграм ботах Telegram, Telegram бот, Бот, Чат-бот, Bots, Google Таблицы, Javascript, Длиннопост

Далее, следуя формату, отправляем список команд, например:

getkeyboard - получить клавиатуру

save - сохранить

Команды в телеграм ботах Telegram, Telegram бот, Бот, Чат-бот, Bots, Google Таблицы, Javascript, Длиннопост

Следим, что нам отвечает отец ботов. Видим сообщение Success - мы молодцы! Идем дальше.


Теперь если мы введем “/” в чате с нашим ботом, то он предложит список команд. Проверяем, что список есть:

Команды в телеграм ботах Telegram, Telegram бот, Бот, Чат-бот, Bots, Google Таблицы, Javascript, Длиннопост

Добавим логику нашим командам


Как уже видно из описания команд, я хочу отправить в чат клавиатуру.

Создам новую ГТ и перейду к написанию скрипта

Команды в телеграм ботах Telegram, Telegram бот, Бот, Чат-бот, Bots, Google Таблицы, Javascript, Длиннопост

Назову файл doPost, здесь будет только эта функция

Команды в телеграм ботах Telegram, Telegram бот, Бот, Чат-бот, Bots, Google Таблицы, Javascript, Длиннопост

Добавлю следующий скрипт:


function doPost(e)

{

let update = JSON.parse(e.postData.contents);

if (update.hasOwnProperty('message'))

{

let msg = update.message;

let chat_id = msg.chat.id;

let text = msg.text;

let msg_array = msg.text.split(" ");

let date = (msg.date/86400)+25569.125;

let user = msg.from.username;

if (text == "/getkeyboard") {

Demo.send_key("Галочки", chat_id, API, keyboard)

}

if (text == "/save") {

Demo.send("Клавиатура сохранена”, chat_id, API)

}

}

}

Все! Для каждой команды теперь добавлен функционал...


Хорошо, расскажу поподробнее))


doPost(e) - стандартная функция телеграма для обработки сообщений ботом. В нее мы записываем, что бот должен делать при получении той или иной команды.


Как видно из скрипта, команда - это простое текстовое сообщение. При заведении списка команд мы ограничиваем пользователя в свободном написании этих самых команд, тем самым упрощая всем жизнь.


Итак, если текст сообщения == “/getkeyboard”, мы отправляем в чат некую клавиатуру.

Если мы отправили боту команду “/save”, то он ответит нам сообщением “Клавиатура сохранена”.


Подробно функции send и send_key, а также библиотека Demo рассматривались в постах ранее. Вот ссылки:

- Создание бота (функция send)

- Клавиатуры (функция send_key)

- Библиотека


Дабы не перегружать дорогого читателя инфой, остановлюсь здесь)

Как всегда жду фидбека и вопросиков ^^ Всегда рады пообщаться!

Показать полностью 6
[моё] Telegram Telegram бот Бот Чат-бот Bots Google Таблицы Javascript Длиннопост
5
67
SensaiKudisai
SensaiKudisai
3 года назад
MS, Libreoffice & Google docs

Типы клавиатур в чат ботах⁠⁠

Сегодня познакомимся с существующими клавиатурами в ботах и тем, как их подключить и настроить.


Всего есть два типа клавиатур:

- ReplyKeyboardMarkup;

- InlineKeyboardMarkup.


ReplyKeyboardMarkup используется в случаях, когда вы хотите получить от пользователя конкретный ответ, предоставляя ему возможность не печатать ручками, а выбрать из предлагаемых вариантов. Иными словами, это заготовки текстовых сообщений. Расположены кнопки под полем ввода сообщения

Типы клавиатур в чат ботах Telegram, Бот, Чат-бот, Telegram бот, Bots, Google Таблицы, Длиннопост

InlineKeyboardMarkup - это более продвинутый вариант кнопок, за которыми скрыт дополнительный функционал. В данном случае кнопки прикрепляются непосредственно к сообщению от бота

Типы клавиатур в чат ботах Telegram, Бот, Чат-бот, Telegram бот, Bots, Google Таблицы, Длиннопост

В зависимости от выбранной кнопки могут последовать те или иные действия. Эту логику мы задаем в скрипте для каждой кнопки.

В приведенном примере мы хотим записать пользователя на маникюр и предлагаем ему определиться с днем (в качестве примера приведены только два варианта, но это можно закастомить).


После выбора того или иного дня бот внесет инфу в ГТ, а именно: дату, имя пользователя и ид чата.

Запись через чат имеет следующий вид

Типы клавиатур в чат ботах Telegram, Бот, Чат-бот, Telegram бот, Bots, Google Таблицы, Длиннопост

Здесь мы выбрали кнопку Сегодня и получили ответ от бота.

В ГТ при этом появилась строчка

Типы клавиатур в чат ботах Telegram, Бот, Чат-бот, Telegram бот, Bots, Google Таблицы, Длиннопост

Подключение и настройка


Каждая клава (инлайн-клавиатур может быть сколько угодно) записана в соответствующую переменную:


var INLINE_Days =

{

"inline_keyboard": [

[{"text": "Сегодня", "callback_data": "today"}],

[{"text": "Завтра", "callback_data": "tomorrow"}],

],

"resize_keyboard": true

}


var KEYBOARD =

{

"keyboard": [

["Записаться", "Отменить запись"]

],

"resize_keyboard": true

}


Обратите внимание, что синтаксис для инлайн (INLINE_Days) и обычной (KEYBOARD) клавиатур различается.

Клавиатурам можно добавить дополнительные свойства, мы использовали только resize_keyboard со значением true. Их не так много и они есть в документации телеграма.


Далее в коде обращаемся к клавам по имени переменной.


С ReplyKeyboardMarkup все достаточно просто. Она добавляется при первом прогоне скрипта, когда вы отправляете в чат команду /start, например.


Нам нужна функция, которая отправит в чат клавиатуру. Функция та же, что и при отправке сообщения ботом send(), за двумя исключениями:


- у функции появляется дополнительный параметр - keyboard;

- у объекта payload появляется доп свойство - reply_markup : JSON.stringify(keyboard)


Ниже скрипт функции отправки обычной клавы в чат:


function send_key (msg, chat_id, api, keyboard)

{

var payload = {

'method': 'sendMessage',

'chat_id': String(chat_id),

'text': msg,

'parse_mode': 'HTML',

reply_markup : JSON.stringify(keyboard)

}

var data = {

"method": "post",

"payload": payload

}

UrlFetchApp.fetch('https://api.telegram.org/bot' + api + '/', data);

}


Вызов функции осуществляется из тела функции doPost(e) одной строкой:


send_key("Поехали", chat_id, API_TOKEN, KEYBOARD)


Здесь всё.


Что касается инлайн-клавиатур.

Отправка клавиатуры наступает при определенном условии. Если пользователь отправил в чат слово “Записаться”, то отправляем ему нашу инлайн-клаву:


if (text == "Записаться") {

Demo.send_key("Выберите день", chat_id, API_TOKEN, INLINE_Days)

}


Переменная text  содержит текст сообщения, которое мы и проверяем на соответствие.


Результатом выполнения функции send_key будет сообщение от бота Выберите день и кнопки под ним.


Далее нужно предусмотреть алгоритм обработки нажатия этих кнопок.

Если мы кликаем на какую-либо из кнопок (“Сегодня” или "Завтра"), то добавляем новую строку в ГТ и отправляем сообщение в чат, что запись создана.


if (data == "today")

{

let date = Demo.getNewDate(0);

let ind = get_ind(chat_id);

Clients.getRange(ind,1).setValue(user_name);

Clients.getRange(ind,2).setValue(chat_id);

Clients.getRange(ind,3).setValue(date);

Demo.send("Вы успешно записались. "+"Дата визита: "+ date, chat_id, API_TOKEN);

}


Ниже скрипт полностью (не забываем, что значения глобальных переменных у вас будут свои):


// Объявляем все нужные нам переменные. Док важно открывать именно по ID, а не брать активный док, т.к. запуск кода будет производить бот

const API_TOKEN = "1946675042:AAHg1HTHe42GhR9EEt0EdbR94j1G8pDcTWE";

const DOC = SpreadsheetApp.openById("1ALJLtLdt-LT7GEF4hawIizVeJXFnoPZCsC0pw7kcp70");

const Clients = DOC.getSheetByName("Clients");

const Calendar = DOC.getSheetByName("Calendar");


function api_connector ()

{

var App_link = "https://script.google.com/macros/s/AKfycbx9izXW_GcUvg-OlXuP9...";

UrlFetchApp.fetch("https://api.telegram.org/bot"+API_TOKEN+"/setWebHook?url="+App_link);

}


function doPost(e)

{

var update = JSON.parse(e.postData.contents);

if (update.hasOwnProperty('message'))

{

var msg = update.message;

var chat_id = msg.chat.id;

var text = msg.text;

var msg_array = msg.text.split(" ");

var date = (msg.date/86400)+25569.125;

var user = msg.from.username;

if (text == "Записаться") {

Demo.send_key("Выберите день", chat_id, API_TOKEN, INLINE_Days)

}

if (text == "Отменить запись") {

let ind = get_ind(chat_id);

Clients.getRange(ind,1,1,3).deleteCells(SpreadsheetApp.Dimension.ROWS);

Demo.send("Запись отменена", chat_id, API_TOKEN)

}

}

if (update.hasOwnProperty('callback_query'))

{

var data = update.callback_query.data;

var text = update.callback_query.message.text;

var id = update.callback_query.message.message_id;

var chat_id = update.callback_query.message.chat.id;

var user_name = update.callback_query.from.username;

if (data == "today")

{

let date = Demo.getNewDate(0);

let ind = get_ind(chat_id);

Clients.getRange(ind,1).setValue(user_name);

Clients.getRange(ind,2).setValue(chat_id);

Clients.getRange(ind,3).setValue(date);

Demo.send("Вы успешно записались. "+"Дата визита: "+ date, chat_id, API_TOKEN);

}

if (data == "tomorrow") {

let date = Demo.getNewDate(1);

let ind = get_ind(chat_id);

Clients.getRange(ind,1).setValue(user_name);

Clients.getRange(ind,2).setValue(chat_id);

Clients.getRange(ind,3).setValue(date);

Demo.send("Вы успешно записались. "+"Дата визита: "+ date, chat_id, API_TOKEN);

}

}

}


Отдельно ниже представлена доп функция, которая проверяет наличие ид в ГТ. Если ид уже есть в таблице, мы обновляем данные у строки с этим ид. В противном случае создаем новую строку.


function get_ind() {

let chat_id = 311157431;

let arr = Clients.getRange(1,2,Clients.getLastRow()).getValues()

arr = arr.flat()

let ind = arr.indexOf(chat_id)

if (ind > -1) {

ind = ind+1;

} else {

ind = Clients.getLastRow()+1;

}

return ind

}



ID для подключения библиотеки Demo: 1JkXEW_zfhr6v0TKsvU_ZbygNLpXEczxZcC46fMF_ffk-noMk8UKcMitz


Здесь также заметим, что клик по кнопке в инлайн клавиатуре отправляет боту JSON со свойством callback_query. Это значит, что нам нужны дополнительные переменные, в которые мы запишем значения из этого JSON пакета.


Это краткая вводная в мир клавиатур. Скоро будут посты про простые сервисы, куда будут добавлены и доработаны те же клавиатуры и доп функции.

Показать полностью 4
[моё] Telegram Бот Чат-бот Telegram бот Bots Google Таблицы Длиннопост
3
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии