powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / telegram webhook
25 сообщений из 112, страница 4 из 5
telegram webhook
    #40020759
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот есть такой код

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
try (CloseableHttpClient client = HttpClients.createDefault()) {
            String stringBuilder = "https://api.telegram.org/botxxxxxxx";
            String str = "{\"chat_id\":"+ss+",\"text\":\"Hi\",\"reply_markup\":{\"inline_keyboard\":[{\"text\":\"A\",\"callback_data\":\"A1\"},{\"text\":\"B\",\"callback_data\":\"C1\"}]}}";
            HttpPost httpPost = new HttpPost(stringBuilder);

            StringEntity entity = new StringEntity(str);
            httpPost.setEntity(entity);
            httpPost.setHeader("Accept", "application/json");
            httpPost.setHeader("Content-type", "application/json");
            httpPost.setHeader("Accept-Charset", "UTF-8");

            CloseableHttpResponse respons = client.execute(httpPost);

            System.out.println("  respons.getStatusLine().getStatusCode()  " + respons.getStatusLine().getStatusCode());
        }


возвращает 404
в чем может быть причина?
...
Рейтинг: 0 / 0
telegram webhook
    #40020760
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Где демка hello world из сети?
ты зарегистрируешь бота и всё прочее?
...
Рейтинг: 0 / 0
telegram webhook
    #40020765
XEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
вот есть такой код

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
try (CloseableHttpClient client = HttpClients.createDefault()) {
            String stringBuilder = "https://api.telegram.org/botxxxxxxx";
            String str = "{\"chat_id\":"+ss+",\"text\":\"Hi\",\"reply_markup\":{\"inline_keyboard\":[{\"text\":\"A\",\"callback_data\":\"A1\"},{\"text\":\"B\",\"callback_data\":\"C1\"}]}}";
            HttpPost httpPost = new HttpPost(stringBuilder);

            StringEntity entity = new StringEntity(str);
            httpPost.setEntity(entity);
            httpPost.setHeader("Accept", "application/json");
            httpPost.setHeader("Content-type", "application/json");
            httpPost.setHeader("Accept-Charset", "UTF-8");

            CloseableHttpResponse respons = client.execute(httpPost);

            System.out.println("  respons.getStatusLine().getStatusCode()  " + respons.getStatusLine().getStatusCode());
        }


возвращает 404
в чем может быть причина?

Причина в том, что ты стринговую переменную назвал stringBuilder.
...
Рейтинг: 0 / 0
telegram webhook
    #40020769
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XEugene
Причина в том, что ты стринговую переменную назвал stringBuilder.
от того как её назовёшь -что-то должно измениться?
...
Рейтинг: 0 / 0
telegram webhook
    #40020778
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
PetroNotC Sharp
Где демка hello world из сети?
ты зарегистрируешь бота и всё прочее?
причем тут я?
Я озвучил то что 99 человек тебе не сказали и прошли мимо.
Демка это: "Ребята! Я делаю вот по этой ссылке буква в букву но у меня не работает!".
Гляньте своим взглядом 15 сек!!!
))))
...
Рейтинг: 0 / 0
telegram webhook
    #40020781
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://core.telegram.org/bots/api#making-requests Making requests
All queries to the Telegram Bot API must be served over HTTPS and need to be presented in this form: https://api.telegram.org/bot<token>/METHOD_NAME. Like this for example:

https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/getMe

Что-то я не наблюдаю ничего после "botxxxx".
...
Рейтинг: 0 / 0
telegram webhook
    #40020801
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Я озвучил то что 99 человек тебе не сказали и прошли мимо.
Демка это: "Ребята! Я делаю вот по этой ссылке буква в букву но у меня не работает!".
Гляньте своим взглядом 15 сек!!!
Я выложил код, который работает/не работает
что бы протестировать - необходимы сделать кучу действий. как минимум зарегистрировать бота, иметь сервер с http...

оказалось - нет достаточной информации о ом что такое json для телеграмм... что есть что
...
Рейтинг: 0 / 0
telegram webhook
    #40020803
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak
Что-то я не наблюдаю ничего после "botxxxx".
вот именно, это одна из ошибок
...
Рейтинг: 0 / 0
telegram webhook
    #40020809
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
bubucha
вадя, не ссы, буть мужиком!
лень разбираться...
а ведь с полгода назад было в первых строках поиска
я понял тебя. Примеров в сети нету. Пишешь по памяти.
...
Рейтинг: 0 / 0
telegram webhook
    #40020826
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
я понял тебя. Примеров в сети нету. Пишешь по памяти.
методы отправки есть, пробовал, но итога нет, вопрос - сам метод с ошибкой? или что-то с данными не так?
22235995 тор оказался рабочий,

Alexander A. Sak
Что-то я не наблюдаю ничего после "botxxxx".
вот первая ошибка.
исправил.
беру метод sendMessage https://core.telegram.org/bots/api#sendmessage
для него json
Код: java
1.
"{\"chat_id\":\"" + c_id+ "\",\"text\":\"Hi\"}";


Hi telegram выводит
пытаюсь вывести кнопку
Код: java
1.
{"chat_id":555555,"text":"Hi","reply_markup":{"InlineKeyboardButton":[{"text":"A"}]}}


Hi выводит а вот кнопку нет....
помогите разобраться с логикой этих json
...
Рейтинг: 0 / 0
telegram webhook
    #40020862
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаем описание метода sendMessage. Параметр reply_markup в частности.
Он должен быть одного из типов: InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply.
Судя по попытке вызова метода, ты пытаешься передать InlineKeyboardMarkup. Читаем что такое InlineKeyboardMarkup:

https://core.telegram.org/bots/api#inlinekeyboardmarkup This object represents an inline keyboard that appears right next to the message it belongs to.
Field inline_keyboard
Type Array of Array of InlineKeyboardButton
Description Array of button rows, each represented by an Array of InlineKeyboardButton objects

То есть ты должен передать объект с полем inline_keyboard . Откуда у тебя появилось поле InlineKeyboardButton ?
...
Рейтинг: 0 / 0
telegram webhook
    #40020866
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Продолжаем. inline_keyboard - это массив массивов. То есть reply_markup должен выглядеть как-то так:
Код: javascript
1.
2.
3.
4.
5.
reply_markup: {
   inline_keyboard: [
      [ ... ], [ ... ], [ ... ], ...
   ]
}



Теперь вопрос что там в этих многоточиях. А там уже объекты типа InlineKeyboardButton, у которых одно обязательное поле text . И опять, нигде слово "InlineKeyboardButton" не фигурирует. Указываем поля, относящиеся к этому типу. Получается что-то типа такого:

Код: javascript
1.
2.
3.
4.
5.
6.
reply_markup: {
   inline_keyboard: [
      [{text: "A"}, {text: "B"}, ...],
      [ ... ], ...
   ]
}



Disclaimer.
Я просто почитал доку.
...
Рейтинг: 0 / 0
telegram webhook
    #40020871
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak,
я правильно понял и отформатировал?
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
{
  "chat_id": 555555,
  "text": "Hi",
  "reply_markup": {
    "inline_keyboard": [
      [
        {
          "text": "A"
        },
        {
          "text": "B"
        }
      ]
    ]
  }
}


Disclaimer.
Я просто проверил
не работает, telegram не понимает , выдаёт 400
...
Рейтинг: 0 / 0
telegram webhook
    #40020872
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выглядит как просит документация. В описании ответа 400 ничего не говорит?
Давай код. Не удивлюсь, если какие-нибудь запятые пропустил или кавычки.

И я такое начинаю тестировать через curl. После понимания уже пишу код.
...
Рейтинг: 0 / 0
telegram webhook
    #40020873
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хе. А в документации еще такое есть:
https://core.telegram.org/bots/api#inlinekeyboardbutton This object represents one button of an inline keyboard. You must use exactly one of the optional fields .
...
Рейтинг: 0 / 0
telegram webhook
    #40020874
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak,

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
{
  "chat_id": 555555,
  "text": "Hi",
  "reply_markup": {
    "inline_keyboard": [
      [
        {
          "text": "A",
          "callback_data": "A1"
        },
        {
          "text": "B",
          "callback_data": "C1"
        }
      ]
    ]
  }
}

вот такое работает
You must use exactly one of the optional fields
...
Рейтинг: 0 / 0
telegram webhook
    #40020876
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak
И я такое начинаю тестировать через curl.
приведи пример, я тоже хочу
...
Рейтинг: 0 / 0
telegram webhook
    #40020881
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
Alexander A. Sak
И я такое начинаю тестировать через curl.
приведи пример, я тоже хочу


- А вы что, и пальцы за меня загибать будете?
- Ага!


Ну вот тот код в начале страницы можно вызвать как-то так:
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
curl --location --request POST 'https://api.telegram.org/botxxxxxxx' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Accept-Charset: UTF-8' \
--data-raw '{
   "chat_id":12345,
   "text":"Hi",
   "reply_markup":{
      "inline_keyboard":[{"text":"A","callback_data":"A1"},{"text":"B","callback_data":"C1"}]
   }
}'
...
Рейтинг: 0 / 0
telegram webhook
    #40020891
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak
- А вы что, и пальцы за меня загибать будете?
- Ага!
просто голова уже поехала....
...
Рейтинг: 0 / 0
telegram webhook
    #40022888
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak
То есть тебе надо будет сделать только обработку входящих HTTP POST

Alexander A. Sak
Я бы между работой напрямую с API и библиотекой какого-то Рубена Бермудеза даже не выбирал.
хорошее предложение - время на разбирательство с либой и время с разбирательством апи равны, а возможностей больше при использовании этих апи. ну и размер вара раза в 3-4 меньше
...
Рейтинг: 0 / 0
telegram webhook
    #40024872
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak,

а как сделать webhook без домена? т.е. с самоподписанным сертификатом.
тут https://core.telegram.org/bots/api#setwebhook
написано. но с доменом....
...
Рейтинг: 0 / 0
telegram webhook
    #40024922
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХЗ. Деле бота давно, и даже не с хуками, а простым поллингом.

В доке есть ip_address. Разве не оно? Делаешь сертификат на IP-адрес, указываешь URL, раз он обязательный, и ip_address на всякий случай.
...
Рейтинг: 0 / 0
telegram webhook
    #40024923
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
Alexander A. Sak,

а как сделать webhook без домена? т.е. с самоподписанным сертификатом.
тут https://core.telegram.org/bots/api#setwebhook
написано. но с доменом....
в смысле?
Я так понял что ты им отправляешь
setВотВамМойАдрес(myhost.ru/987654321)
Они пришлют тебе привет туда.
Верно?
...
Рейтинг: 0 / 0
telegram webhook
    #40024927
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
в смысле?
Я так понял что ты им отправляешь
setВотВамМойАдрес(myhost.ru/987654321)
Они пришлют тебе привет туда.
Верно?
это всё не то
Alexander A. Sak
доке есть ip_address. Разве не оно? Делаешь сертификат на IP-адрес, указываешь URL, раз он обязательный, и ip_address на всякий случай.
вопрос в том, что какой url указывать? если его нет.

Код: plaintext
The fixed IP address which will be used to send webhook requests instead of the IP address resolved through DNS
указать вообще левый типа xxx.fff ?
...
Рейтинг: 0 / 0
telegram webhook
    #40024932
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я так понимаю
я должен отправить
левый url https://xx.xx:8443
реальный ip_address
самоподписанный сертификат ccc.pem
на эту отправку он мне отвечает
Код: plaintext
 {"ok":true,"result":true,"description":"Webhook was set"} 

т.е. телега приняла
теперь она должна запросить сам сертификат? как файл.
...
Рейтинг: 0 / 0
25 сообщений из 112, страница 4 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / telegram webhook
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]