Комментарии 20
Спасибо! Для такого новичка, как я нуждающегося в понимании основ процесса, статья очень хорошая.
Хм. Видео выложено 4 года назад... https://youtu.be/mKSXd_od4Lg
В поле Who has access выбираем Anyone, что позволит другим пользователям вносить правки в проект и деплоить без вашего участия.
А это обязательно? И зачем?
Уберите из статьи реальный токен бота.
Было бы неплохо во второй части статьи увидеть механизм хранения информации в тех же гугл-таблицах :)
Все боты все равно удаляются поcле публикации) Механизм записи и хранения инфы в табличках опишу в следующих статьях
3. Рассмотрите также вариант отправки сообщения сразу же при обработке (возвращая JSON из функции)
https://jeffreyeverhart.com/2016/04/14/how-to-serve-json-using-the-google-apps-script-content-service/
https://core.telegram.org/bots/faq#how-can-i-make-requests-in-response-to-updates
Так Вы снизите углеродный след :)
Токен можно поменять через botfather
Выше есть ссылка на видео, там рассказывают про чтение и запись в таблицу.
const App_link = "";
//после каждого деплоя обновляем значение переменной
Apps Script поддерживает версионирование деплоймента. Соответственно при создании нового - выдаётся новый url, при обновлении - остаётся прежний.
SpreadsheetApp.openById('blahblah')
В случае встроенного скрипта достаточно SpreadsheetApp.getActive()
Спасибо, интересно.
А как сделать чтоб бот присылал не "текст", а значение ячейки таблицы например?
После вставки App_link нужно снова задеплоить, но здесь и далее при других правках выбирать Новая версия.
Сделал своего первого бота с помощью этой инструкции, благодарю за статью!
Кстати, еспользовать гугл-таблицу в качестве БД бота - оказалось вполне удобно.
Но обнаружил одну особенность: этот бесплатный хостинг - небыстрый, в любой момент бот может зависнуть на полминуты. Итог: не подходит для коммерческого бота, но вполне подходит для создания прототипа.
В поле Who has access выбираем Anyone, что позволит другим пользователям вносить правки в проект и деплоить без вашего участия.
Похоже на ошибку, кажется, это поле влияет только на доступ к внешней ссылке, а для доступа к проекту нужны отдельные права
Спасибо, полезная штука. Ещё осталось разобраться как в таблицу писать значения!
Автор, спасибо за интересный подход к созданию ботов
Я в свою очередь, решил воссоздать Ваш сценарий, но столкнулся с ошибкой - когда на App_Link телега шлет Update, в ответ приходит "Wrong response from the webhook: 401 Unauthorized". Как Вы решали вопрос с авторизацией и стоял ли он вообще перед Вами?
Если вопрос еще актуален.
Я предполагаю, что не была выполнена эта функция. То есть убедидесь, что API корректный и выполнение закончилось успешно.
function api_connector () {
UrlFetchApp.fetch(`https://api.telegram.org/bot${API}/setWebHook?url=${App_link}`);
}
Переменная API - api token вашего бота
Переменная App_link - ссылка, полученная при деплое приложения

Запустить функцию можно в скриптах, либо можно скопировать текст из ковычек и вставить в браузере, что вернет такой результат:
{"ok":true,"result":true,"description":"Webhook is already set"}
Я - начинающий. Мне надо, чтобы бот искал значение в гугл таблице и возвращал значение в телеграм. По названию статьи, она мне подходит. Сделал всё, как в статье, и что? Как это относится собственно к гугл таблице? Что за деплои, в каком порядке что делать? Читал несколько раз, потом плюнул, скопипастил весь скрипт разом и задеплоил. Ну, отправляет он хелловорд, дальше-то что? Зачем тут вообще таблицы? Каким они местом к боту?
После успешного выполнения api_connector бот не реагирует на "/hello", что я делаю не так ?
Журнал выполнения
14:09:58 Примечание Выполнение начато
14:09:59 Примечание Выполнение завершено
Подключение телеграм бота к гугл таблицам