0. 🅵🅾️🆇 401 07.11.18 21:54 Сейчас в теме

Создание телеграм бота с гугл авторизацией, обратными вызовами и уведомлениями об обновлении через сервер-маршрутизатор

Статья детально рассказывает обо всех аспектах настройки телеграм бота, работающего через сервер-маршрутизатор посредством обратных вызовов.
Приведены примеры работы отправки/исправления сообщений, отправки файлов, работы с внутренними и встроенными запросами.
Создание клавиатуры. Авторизация пользователей через gmail.

Перейти к публикации

Лучшие комментарии
34. webester 29 17.12.18 02:58 Сейчас в теме
Если нагрузка небольшая для прокси можно использовать google cloud compute там в некоторых регионах микромашины бесплатно. Для ngnix должно хватить.
🅵🅾️🆇; +1 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо
1. 🅵🅾️🆇 401 07.11.18 22:36 Сейчас в теме
Статью пописываю потихоньку. Если возникают вопросы или предложения по написанному - с удовольствием дополню статью, будет этакий роман или подробный гайд.
ice-net; ArtfulCrom; TreeDogNight; AtPups000; dsdred; jONES1979; +6 Ответить
2. blackhole321 990 07.11.18 23:53 Сейчас в теме
Не рассматривали вариант реализации просто на iptables?
3. 🅵🅾️🆇 401 07.11.18 23:56 Сейчас в теме
(2)
iptables

Вы имеете ввиду просто заворачивать трафик с помощью iptables на VPS'ке?
Можно и так. Но у nginx всеже побольше возьможностей в управлении http трафиком и доменами, а ресурсов он не кушает совсем.

Сходу не смогу даже сказать, что там с https трафиком будет на iptables.
4. blackhole321 990 07.11.18 23:59 Сейчас в теме
(3)
Вы имеете ввиду просто заворачивать трафик с помощью iptables на VPS'ке?

Да. виртуалка же Вам нужна только для этого?
5. 🅵🅾️🆇 401 08.11.18 00:01 Сейчас в теме
(4) Ну с iptables могут возникнуть проблемы с https трафиком. Это надо пробывать или вопрошать знающих сетевиков.
Дело в том, что сертификат выдается для https://api.telegram.org/ , а общаетесь вы с неким левым сервером.
Что тут выйдет, я не отвечу) Да и в чем, собственно, смысл, если nginx и на калькуляторе запуститься.

На виртуалке также поднимаются http/socks5/mtproxy proxy ну и все что захотите)
Опционален VPN тунель, если у вашей базы нет выделенного ip.
8. user829102 08.11.18 09:03 Сейчас в теме
(3)
Сходу не смогу даже сказать, что там с https трафиком будет на iptables

Я делал так. Зарегистрировал самый дешевый инстанс в DigitalOcean в Амстердаме. Установил на нем nginx + сделал самоподписанный сертификат по инструкции https://www.8host.com/blog/sozdanie-samopodpisannogo-ssl-sertifikata-dlya-nginx-v-ubuntu-16-04/
потом сделал так (нашел в интернете)
apt-get update && apt-get install -y nano nginx
nano /etc/nginx/sites-available/default #
в location добавить "proxy_pass https://api.telegram.org/;"
service nginx reload
И вместо https://api.telegram.org из 1ски обращаюсь к ip этого сервера в DigitalOcean
13. 🅵🅾️🆇 401 08.11.18 12:02 Сейчас в теме
(8) Имено это в статье я и описываю)

Вместо
apt-get update && apt-get install -y nano nginx 

должно быть
apt update && apt upgrade && yes | apt install nginx

Этим Вы обновляете систему и ставите nginx, в вашей команде только обновляется индекс пакетов, по хорошему надо и существующие обновить.
Ну и nano у вас из коробки, наверняка, есть. Новичкам можно поставить mcedit - он попроще.

nano /etc/nginx/sites-available/default

Тут вы правите дефолтный конфиг с помощью редактора nano, хотя для красоты лучше добавить отдельный конфиг для телеги.

в location добавить "proxy_pass https://api.telegram.org/;"

Собственно тут вы и указываете проксирование.

Вместо самоподписаного сертификаты возможно использовать бесплатный от let's encrypt, но его придется не забывать обновлять каждые 3 месяца. Также для такого сертификата надо будет прикупить домен.
6. eeeio 106 08.11.18 00:04 Сейчас в теме
спасибо. захватывающий роман! жду продолжения.
🅵🅾️🆇; +1 Ответить
7. 🅵🅾️🆇 401 08.11.18 01:54 Сейчас в теме
Небольшой оффтопик, нашел прикольного бота в телеге: @egrul_bot
9. surikateg 08.11.18 09:29 Сейчас в теме
Для каких целей прокси ставить?
11. 🅵🅾️🆇 401 08.11.18 11:41 Сейчас в теме
(9) Для пользователей. Также можете поставить MTProxy, оно позволяет закреплять канал у пользователей пользующихся вашими проксями и неотличимо от https трафика.

Проксирующий nginx нужен для проксирования webhook запросов, в следующих случаях:
1) провайдер не пущает трафик от api telegram'а
2) у вашей базы 1с нет выделенного ip
3) у вашей базы 1с нельзя открыть порт из следующих: 80, 443, 8080, 8443
4) просто хотите управлять своим трафиком (ну или балансировать, хотя вряд ли это Ваш вариант)

Если ваша база обладает белым ip и доступны порты, хостится не в россии, ваши пользователи спокойно сидят в телеге - смело пропускайте этот пункт.
10. pallid 209 08.11.18 09:44 Сейчас в теме
есть еще такой сервис для отладки https://www.webhookapp.com/, но пойдет и для проксирования
nomadon; 🅵🅾️🆇; +2 Ответить
12. 🅵🅾️🆇 401 08.11.18 12:01 Сейчас в теме
(10) Добавил в статью с указанием авторства.
14. Synoecium 629 08.11.18 12:18 Сейчас в теме
шикарно написано, жду продолжения
🅵🅾️🆇; +1 Ответить
15. woridasb 08.11.18 22:02 Сейчас в теме
Интересная статья намечается.
Такой вопрос, почему не стали использовать серфитикат от Let's Encrypt?
🅵🅾️🆇; +1 Ответить
16. 🅵🅾️🆇 401 09.11.18 01:02 Сейчас в теме
(15) Две причины:
1) для Let's encrypt нужен домен, а не просто ip
2) нужно обновлять каждые три месяца (тут можно и скрипт в cron добавить, наверное)

В общем это опционально и возможно (особенно если вы ожидаете посетителей на вебсервере этой VPS'ки).
Телега кушает и самоподписанные сертификаты.
Сам сертификат от let's encrypt получается очень просто, у них теперь скрипт есть, оно даже само в nginx прописывается.
17. woridasb 09.11.18 05:10 Сейчас в теме
(16) Домен тоже можно получить довольно просто и бесплатно. Взять в *.tk и будет тогда все по красоте )))
18. 🅵🅾️🆇 401 09.11.18 11:00 Сейчас в теме
(17) В таком случае для 1с'ки надо брать бесплатный домен в зоне *.cf.
Ну или оба)

У меня для домашнего сервера домен pfx.pw с кучей доменов третьего уровня на вроде git.pfx.pw - плачу 300 руб/год.
Домен короткий и левая реклама не вставляется. 300 рублей/год не такие уж и большие деньжища.
19. woridasb 10.11.18 19:05 Сейчас в теме
(18)
омен короткий и ле

Домен в зоне .tk второго уровня, в связке с pdd.yandex 0 рублей )))))
🅵🅾️🆇; +1 Ответить
20. V_V_V 13.11.18 16:28 Сейчас в теме
Когда ожидать продолжение?
🅵🅾️🆇; +1 Ответить
21. 🅵🅾️🆇 401 13.11.18 16:30 Сейчас в теме
(20) Глава раз в 3-5 дней, очень большая загрузка и другие проекты :c
Скорее всего сегодня напишу главу про заведение гугл приложения.
Там не очень много чего можно сказать.

Если чего не получается по моему гайду - я обязательно объясню и допишу.
Тк пишу его постфактум, по памяти как и что настраивал.
23. 🅵🅾️🆇 401 14.11.18 10:15 Сейчас в теме
(20) Специально для Вас вчера 2 главы осилил c:
24. V_V_V 14.11.18 13:52 Сейчас в теме
(23) Громадное спасибо за проделанную работу! Статья замечательная.
Будем ждать продолжение... :)
🅵🅾️🆇; +1 Ответить
22. JohnyDeath 293 14.11.18 08:40 Сейчас в теме
Статья однозначно должна пойти в закладки всем!
Спасибо автору.
DarkAn; 🅵🅾️🆇; +2 Ответить
25. user1024476 19.11.18 16:57 Сейчас в теме
маэстро, не подскажите как быть, если те самые 4 порта закрыты
что нужно сделать с nginx ?
26. 🅵🅾️🆇 401 19.11.18 17:00 Сейчас в теме
(25) Привет. Закрыты где, у базы 1с, а на VPS открыты?
В статье приведен пример в котором nginx на VPS'ке принимает соединения на 8443 порт и перенаправляет на {YOUR_BASE_PORT} порт веб сервера 1с:

server {
        listen 8443 ssl http2 default_server;
        listen [::]:8443 ssl http2 default_server;
        server_name {YOUR_PROXY_ADDRESS};
        include snippets/self-signed.conf;
        include snippets/ssl-params.conf;
        location /base1s/hs/api/telegram {
                proxy_pass https://{YOUR_BASE_ADDRESS}:{YOUR_BASE_PORT}/{YOUR_BASE_NAME}/hs/api/telegram;
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                client_max_body_size 100M;
        }
}
Показать


У самого такая ситуация, довольно крупный хостер-франчайзи, не могут предоставить нужные мне порты.
user1024476; +1 Ответить
27. user1024476 19.11.18 18:26 Сейчас в теме
(26) точно, увидел всё, видимо глаза замылены были )
благо в качестве сервера пока что виртуалка и здесь все можно
хотел еще задать вопрос: heroku сюда никак не вклинить ?
28. 🅵🅾️🆇 401 19.11.18 18:33 Сейчас в теме
(27) Ну в рамках статьи рассматривается полноценная, хоть и сильно бюджетная, VPS. Heroku не пробывал, но мне кажется это не очень уместно для данного решения.
29. user1024476 19.11.18 18:56 Сейчас в теме
(28)позвольте еще вопрос
я же правильно понял , у нас из внешней сети доступен только проксирующий nginx ?
30. 🅵🅾️🆇 401 19.11.18 19:23 Сейчас в теме
(29) На маршрутизаторе сети 1с сервера должен быть прокинут 1 порт к серверу по которому будут обращаться вебхуки телеграмма (тот порт что в конфиге указан как {YOUR_BASE_PORT})

Также еще по 1 порту будут бегать пакетики для отправки сообщений. Этот порт просто должен не быть закрыть (не drop и не reject правила), как правило, ничего дополнительно для него настраивать не надо. В моем случае это порт socks5 проксей, который на VPS настраиваем через 3proxy (через него 1с будет слать сообщение и сидеть ваши друзья и коллеги).
user1024476; +1 Ответить
31. user1024476 20.11.18 14:39 Сейчас в теме
Развернул на azure сервер с убунту , поставил nginx, сгенерил сертификат, запустил сайт
1С стоит на апаче на хосте, доступном из внешней сети по определенному порту
запустил вебхук, приходит Webhook was set
вот только общаться в сервером он все равно, как я понял, не хочет
при getwebhookinfo приходит либо Wrong response from the webhook: 405 Not Allowed, либо ругается на сертификат (когда заного пытаюсь все настроить)
что мог упустить ?
32. 🅵🅾️🆇 401 20.11.18 14:41 Сейчас в теме
(31)
Что отвечает на curl "https://api.telegram.org/bot{YOUR_TOKEN}/getWebhookInfo" ?

Если что, можете писать мне в тележку, а решение проблемы напишем тут: @plugfox
33. GlebBR 14.12.18 10:29 Сейчас в теме
очень хорошая статья, спасибо.
34. webester 29 17.12.18 02:58 Сейчас в теме
Если нагрузка небольшая для прокси можно использовать google cloud compute там в некоторых регионах микромашины бесплатно. Для ngnix должно хватить.
🅵🅾️🆇; +1 Ответить
35. seducer 81 05.04.19 12:37 Сейчас в теме
36. 🅵🅾️🆇 401 05.04.19 12:39 Сейчас в теме
(35) Будет)
Просто дикая нагрузка + пет проекты давят.
Очень много чего хочу опубликовать, сделать и рассказать, но времени и сил все нет :c
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Ижевск
зарплата от 70 000 руб. до 94 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата до 120 000 руб.
Полный день

Программист 1С
Санкт-Петербург
Полный день

Консультант 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день