Как удалить вебхук Telegram

The text was updated successfully, but these errors were encountered:

dygy commented Apr 20, 2018 •

version ‘1.0-SNAPSHOT’ apply plugin: ‘java’ sourceCompatibility = 1.8 repositories < mavenCentral() >dependencies
rubenlagus commented Apr 20, 2018

Caused by: org.telegram.telegrambots.exceptions.TelegramApiException: Unable to execute deleteWebhook method

dygy commented Apr 21, 2018 •

org.telegram.telegrambots.exceptions.TelegramApiRequestException: Error removing old webhook at org.telegram.telegrambots.bots.TelegramLongPollingBot.clearWebhook(TelegramLongPollingBot.java:32) at org.telegram.telegrambots.TelegramBotsApi.registerBot(TelegramBotsApi.java:120) at Main.main(Main.java:13) Caused by: org.telegram.telegrambots.exceptions.TelegramApiException: Unable to execute deleteWebhook method at org.telegram.telegrambots.bots.DefaultAbsSender.sendApiMethod(DefaultAbsSender.java:691) at org.telegram.telegrambots.bots.AbsSender.execute(AbsSender.java:53) at org.telegram.telegrambots.bots.TelegramLongPollingBot.clearWebhook(TelegramLongPollingBot.java:27 ) . 2 more Caused by: org.apache.http.conn.HttpHostConnectException: Connect to api.telegram.org:443 [api.telegram.org/149.154.167.220] failed: Connection timed out: connect at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:159) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:359) at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381) at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185) at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108) at org.telegram.telegrambots.bots.DefaultAbsSender.sendHttpPostRequest(DefaultAbsSender.java:737) at org.telegram.telegrambots.bots.DefaultAbsSender.sendMethodRequest(DefaultAbsSender.java:733) at org.telegram.telegrambots.bots.DefaultAbsSender.sendApiMethod(DefaultAbsSender.java:688) . 4 more Caused by: java.net.ConnectException: Connection timed out: connect at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:339) at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) . 16 more Exception in thread «main» java.lang.NullPointerException at Main.mash(Main.java:23) at Main.crunch(Main.java:20) at Main.main(Main.java:16) Process finished with exit code 1

Not sure how to see «more» in IDEA or anywhere at this moment.

Как массово удалить чаты в телеграме | Как удалить все чаты в Telegram| Как удалить чаты в тг

Удаление следов Телеграм ботов


Will past if i will get how.

rubenlagus commented Apr 21, 2018

Caused by: java.net.ConnectException: Connection timed out: connect

This error means that there is a problem connecting to Telegram servers from yours. More exactly to reach [api.telegram.org/149.154.167.220] , maybe you can check if there is something preventing it to reach (firewalls, slow connection, etc).

dygy commented Apr 21, 2018
Contributor
bvn13 commented Apr 21, 2018
dygy commented Apr 21, 2018

is it the normal way to set it up?
public class Main
private static String BOT_NAME = «My test bot»; private static String BOT_TOKEN = «» /* your bot’s token here */; private static String PROXY_HOST = «» /* proxy host */; private static Integer PROXY_PORT = /* proxy port */; private static String PROXY_USER = «» /* proxy user */; private static String PROXY_PASSWORD = «» /* proxy password */; public static void main(String[] args) < try < ApiContextInitializer.init(); // Create the TelegramBotsApi object to register your bots TelegramBotsApi botsApi = new TelegramBotsApi(); // Set up Http proxy DefaultBotOptions botOptions = ApiContext.getInstance(DefaultBotOptions.class); CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials( new AuthScope(PROXY_HOST, PROXY_PORT), new UsernamePasswordCredentials(PROXY_USER, PROXY_PASSWORD)); HttpHost httpHost = new HttpHost(PROXY_HOST, PROXY_PORT); RequestConfig requestConfig = RequestConfig.custom().setProxy(httpHost).setAuthenticationEnabled(true).build(); botOptions.setRequestConfig(requestConfig); botOptions.setCredentialsProvider(credsProvider); botOptions.setHttpProxy(httpHost); botsApi.registerBot((LongPollingBot) new Bot()); >catch (TelegramApiException e) < e.printStackTrace(); >> >
dygy commented Apr 22, 2018

Еще по теме:  Еа видеозвонках в Телеграмме не работает микрофон

okay, last words for this. For everybody who uses long polling bot and also have problems, the situation with constructor I made like this

protected My_Bot(DefaultBotOptions options) < super(options);

Источник: github.com

Как удалить вебхук telegram

Про сам процесс создания бота в интернете есть огромное количество статей, самый подробный по ссылке ниже:

Cамое важное что нужно — это API Token.

Все запросы к телеграм боту должны обслуживаться через HTTPS и должны быть представлены в следующей форме: https://api.telegram.org/bot/METHOD_NAME

То есть мне понадобится ссылка на телеграм через которую бот будет получать данные с «серверной» (гугл таблицы) стороны

Сохраняю их в скрипт:

const botToken = ‘token’ const telegramUrl = «https://api.telegram.org/bot» + botToken + «/»;

Как устроен бот

Есть два взаимоисключающих способа получения обновлений для бота — метод getUpdates и Webhooks.

Разница между ними такая же, как разница между «тянуть» и «толкать». При Webhooks бот не будет делать ничего, пока его об этом не попросит пользователь путем команд либо со своей стороны либо со стороны сервера, при getUpdates все происходит с точностью наоборот — бот сам обращается к серверу и спрашивает его на предмет изменений.

В силу все тех же ограничений и квот гугла, мне больше подходит Webhooks.

Предварительные действия

Для того, чтобы бот начал общаться с таблицей их необходимо связать.

Так как все общение бота происходит через https, рабочий скрипт надо «deploy as Web app» — в таком случае гугл дает ссылку на веб апп. И вот тут есть нюанс. Если коротко — каждое изменение в коде при «deploy as web app» надо деплоить заново. Это жутко неудобно когда разрабатываешь и тестируешь функционал бота, потому что каждый раз ссылка новая и в боте надо удалять текущий вебхук и прописывать новый вебхук.

Еще по теме:  Как вставлять гифки в Телеграмм

Данная проблема лечится двумя способами:

  • Через создание дополнительной библиотеки
  • Через старый режим среды разработки: для этого необходимо перейти в устаревшую версию «Использовать устаревшую версию» и выбрать

И получить ссылку(1) на web app и так же ее скопировать куда-нибудь

После этого еще раз открыть «Развернуть как веб-приложение…» и нажать Disable web app

Затем снова проделать развертывание веб-приложения и еще раз скопировать ссылку(2)

Далее сравнить ссылку(1) с ссылкой(2) — ссылка(2) должна быть короче.

При таком сценарии в случае сохранения заново деплоить ничего не надо — все будет автоматически сохраняться.

Далее можно вернуться в новый режим и прописать ссылку(2) в переменную.

const googleUrl ;

Установка вебхука

Итак, у меня есть телеграм токен, телеграм ссылка для общения и гугл-ссылка для приема и передачи данных бота. Осталось их связать:

// Установка вебхука в телеграме function setWebHook() < const url = telegramUrl+»setWebhook?url utf-8″>console.log выведет что вебхук установлен. Если запустить скрипт еще раз, то со стороны телеграма придет следующий ответ:

Как удалить вебхук Telegram

Удаление вебхука

Тоже понадобится как по причинам описанным выше, так и просто потому, что в функционале бота в какой-то момент не будет необходимости. Скрипт так же выполняется единожды

// Удаление вебхука в телеграме function deleteWebHook() < const url = telegramUrl+»deleteWebhook?url wp-block-heading»>Общение бота с таблицей — doPost(e)

И вот я подошел к самой интересной части. Пути прописаны, вебхук установлен. Пора получить от бота что-то в таблицу.

function doPost(e)< const main = JSON.parse(e.postData.contents); // получаем данные из телеграм бота wsDebug.getRange(1,1).setValue(JSON.stringify(main, null, 5)); >

Все что приходит от телеграма на гугловый web app есть объект е и он имеет следующие параметры:

e.postData.contents — основное «тело», в котором содержится все необходимое, что приходит от телеграм бота.

И тут надо сделать оговорку: гугл скрипт не позволяет делать console.log в функции doPost()

Чтобы увидеть что приходит со стороны телеграма я создал лист «Debug»

const wsDebug = ss.getSheetByName(«Debug»)

и в первую ячейку записываю все то, что пришло

Еще по теме:  Кто такая мадам секретарь в Телеграмме

wsDebug.getRange(1,1).setValue(JSON.stringify(main, null, 5));

Что такое JSON.parse

Обычно JSON используется для обмена данными с / на веб-сервер. При получении данных с веб-сервера такие данные всегда являются строкой. JSON.parse делает их объектом JavaScript.

Что такое JSON.stringify

При отправке данных на веб-сервер данные должны быть строкой. Преобразование объекта JavaScript в строку осуществляется с помощью JSON.stringify.

А зачем тогда строку сначала парсить в объект, а потом обратно конвертить в строку?

Все дело в том, что если записать в ячейку объект то ИМЕННО вид он будет иметь следующий т.е. неудобно читаемый:

Если же записывать через JSON.stringify(main, null, 5), то строка вид будет иметь «приятный и понятный»:

Итак я получаю данные от телеграма. Теперь их надо как-то обработать и куда-то записать. А еще надо в телеграм передать данные. И об этом — в следующей части

Источник: dmitriizhuk.ru

Не могу сбросить webhook в telegram

При этом вызовы не поступают. После первой команды должен быть ответ типа Webhook removed , однако он аналогичный «Webhook is already set» . В чем может быть проблема?

Отслеживать
5,920 3 3 золотых знака 22 22 серебряных знака 43 43 бронзовых знака
задан 8 фев 2016 в 11:25
Ivan Malenkov Ivan Malenkov
31 1 1 серебряный знак 5 5 бронзовых знаков
сертификат загружать требуется только для самоподписаных, в моем случае это не так.
9 фев 2016 в 17:58

вопрос решен необходим было вызывать curl: curl -F «https //myurl» https //api.telegram.org/bot***/setWebhook

11 фев 2016 в 11:32

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

вопрос решен необходимо

было вызывать curl:

curl -F «https //myurl» https //api.telegram.org/bot***/setWebhook
Отслеживать
ответ дан 11 фев 2016 в 11:33
Ivan Malenkov Ivan Malenkov
31 1 1 серебряный знак 5 5 бронзовых знаков

Ваш набор webhook не был успешным действительно, потому что не был загружен файл сертификата, а показаны API вам «Webhook was set», но это было не совсем так Вы должны заботиться о загрузке файла сертификата на серверы и убедиться, что ваш файл сертификата загружен, Лучше, проверить API для загрузки файла сертификата и пусть разработчик знает об этом, если нет, отправить неудачную набор webhook

Источник: ru.stackoverflow.com

Рейтинг
( Пока оценок нет )
Загрузка ...