Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4]      все
 Re: telegram webhook  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
и тут ещё
приходит на https://xxx.ru:8443/bon/ppp c ip telegram xx.xx.xx.xx
ф отправить надо "https://api.telegram.org/botxxx:ddddd_rrrrr/"
19 ноя 20, 22:49    [22235782]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 6525
вадя
Wireshark тож много не даёт https
он или другие работают с таким протоколом. Кому счас легко?

вадя
на этом этапе важно не содержимое json, а правильно всё сформировать для передачи json....
мест для ошибки много - надо вычислить конкретное мест

Да. Работа программиста). А как они узнают что ты правильно сформировал у себя как не по json?
20 ноя 20, 07:21    [22235841]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 6525
вадя
и тут ещё
приходит на https://xxx.ru:8443/bon/ppp c ip telegram xx.xx.xx.xx
ф отправить надо " (подозрительная ссылка!) https://api.telegram.org/botxxx:ddddd_rrrrr/"
ну, воспроизведи ровно то что у них.
Отправь мальчик по их адресу))))
20 ноя 20, 07:22    [22235843]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
PetroNotC Sharp
А как они узнают что ты правильно сформировал у себя как не по json?
для начала надо самому убедиться что что-то правильно формируется - есть данные из одного слова
PetroNotC Sharp
ну, воспроизведи ровно то что у них.
Отправь мальчик по их адресу))))
вместо язвенных слов, лучше достоверный вариант привел бы.
20 ноя 20, 09:15    [22235866]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 6525
вадя,
Я съязвил на твой текст мол нужно отправить по другому адресу и адрес ты написал.
И....?
Где скрины сниффера?
Где демка hello world из сети?
20 ноя 20, 10:11    [22235891]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
вот есть такой код

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
в чем может быть причина?
20 ноя 20, 13:08    [22235995]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
PetroNotC Sharp
Где демка hello world из сети?
ты зарегистрируешь бота и всё прочее?
20 ноя 20, 13:10    [22235996]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
XEugene
Member

Откуда:
Сообщений: 2394
вадя
вот есть такой код

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.
20 ноя 20, 13:26    [22236004]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
XEugene
Причина в том, что ты стринговую переменную назвал stringBuilder.
от того как её назовёшь -что-то должно измениться?
20 ноя 20, 13:33    [22236011]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 6525
вадя
PetroNotC Sharp
Где демка hello world из сети?
ты зарегистрируешь бота и всё прочее?
причем тут я?
Я озвучил то что 99 человек тебе не сказали и прошли мимо.
Демка это: "Ребята! Я делаю вот по этой ссылке буква в букву но у меня не работает!".
Гляньте своим взглядом 15 сек!!!
))))
20 ноя 20, 14:03    [22236034]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
Alexander A. Sak
Member

Откуда: Омск
Сообщений: 1128
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".
20 ноя 20, 14:07    [22236037]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
PetroNotC Sharp
Я озвучил то что 99 человек тебе не сказали и прошли мимо.
Демка это: "Ребята! Я делаю вот по этой ссылке буква в букву но у меня не работает!".
Гляньте своим взглядом 15 сек!!!
Я выложил код, который работает/не работает
что бы протестировать - необходимы сделать кучу действий. как минимум зарегистрировать бота, иметь сервер с http...

оказалось - нет достаточной информации о ом что такое json для телеграмм... что есть что
20 ноя 20, 15:19    [22236085]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
Alexander A. Sak
Что-то я не наблюдаю ничего после "botxxxx".
вот именно, это одна из ошибок
20 ноя 20, 15:21    [22236087]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 6525
вадя
bubucha
вадя, не ссы, буть мужиком!
лень разбираться...
а ведь с полгода назад было в первых строках поиска
я понял тебя. Примеров в сети нету. Пишешь по памяти.
20 ноя 20, 15:31    [22236096]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
PetroNotC Sharp
я понял тебя. Примеров в сети нету. Пишешь по памяти.
методы отправки есть, пробовал, но итога нет, вопрос - сам метод с ошибкой? или что-то с данными не так?
22235995 тор оказался рабочий,

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

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

Hi выводит а вот кнопку нет....
помогите разобраться с логикой этих json
20 ноя 20, 16:00    [22236119]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
Alexander A. Sak
Member

Откуда: Омск
Сообщений: 1128
Читаем описание метода 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?
20 ноя 20, 18:03    [22236176]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
Alexander A. Sak
Member

Откуда: Омск
Сообщений: 1128
Продолжаем. inline_keyboard - это массив массивов. То есть reply_markup должен выглядеть как-то так:
reply_markup: {
   inline_keyboard: [
      [ ... ], [ ... ], [ ... ], ...
   ]
}


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

reply_markup: {
   inline_keyboard: [
      [{text: "A"}, {text: "B"}, ...],
      [ ... ], ...
   ]
}


Disclaimer.
Я просто почитал доку.
20 ноя 20, 18:11    [22236182]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
Alexander A. Sak,
я правильно понял и отформатировал?
{
  "chat_id": 555555,
  "text": "Hi",
  "reply_markup": {
    "inline_keyboard": [
      [
        {
          "text": "A"
        },
        {
          "text": "B"
        }
      ]
    ]
  }
}

Disclaimer.
Я просто проверил
не работает, telegram не понимает , выдаёт 400
20 ноя 20, 18:54    [22236189]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
Alexander A. Sak
Member

Откуда: Омск
Сообщений: 1128
Выглядит как просит документация. В описании ответа 400 ничего не говорит?
Давай код. Не удивлюсь, если какие-нибудь запятые пропустил или кавычки.

И я такое начинаю тестировать через curl. После понимания уже пишу код.
20 ноя 20, 19:04    [22236190]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
Alexander A. Sak
Member

Откуда: Омск
Сообщений: 1128
Хе. А в документации еще такое есть:
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.


Сообщение было отредактировано: 20 ноя 20, 19:03
20 ноя 20, 19:06    [22236191]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
Alexander A. Sak,

{
  "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
20 ноя 20, 19:18    [22236192]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
Alexander A. Sak
И я такое начинаю тестировать через curl.
приведи пример, я тоже хочу
20 ноя 20, 19:19    [22236195]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
Alexander A. Sak
Member

Откуда: Омск
Сообщений: 1128
вадя
Alexander A. Sak
И я такое начинаю тестировать через curl.
приведи пример, я тоже хочу


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


Ну вот тот код в начале страницы можно вызвать как-то так:
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"}]
   }
}'
20 ноя 20, 19:42    [22236200]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
Alexander A. Sak
- А вы что, и пальцы за меня загибать будете?
- Ага!
просто голова уже поехала....
20 ноя 20, 20:11    [22236216]     Ответить | Цитировать Сообщить модератору
 Re: telegram webhook  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
Alexander A. Sak
То есть тебе надо будет сделать только обработку входящих HTTP POST

Alexander A. Sak
Я бы между работой напрямую с API и библиотекой какого-то Рубена Бермудеза даже не выбирал.
хорошее предложение - время на разбирательство с либой и время с разбирательством апи равны, а возможностей больше при использовании этих апи. ну и размер вара раза в 3-4 меньше

Сообщение было отредактировано: 27 ноя 20, 19:50
27 ноя 20, 19:55    [22239527]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4]      все
Все форумы / Java Ответить