| Автор | Сообщение |
|
|
| |
Пост N: 652
Зарегистрирован: 17.06.10
|
|
Отправлено: 24.10.22 10:21. Заголовок: Чатбот
Приветствую ! У каждого клиента свой чатбот. Ключи в базе и я могу разослать сообщения тому или иному на телефон. Все работает. Можно ли сделать так - бот только один, а клиенты, по токену, к нему подключаются ?
|
 |

|
|
Ответов - 36
, стр:
1
2
All
[только новые]
|
|
|
|
| |
Пост N: 8000
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.11.24 19:18. Заголовок: MIKHAIL Привет. А н..
MIKHAIL Привет. А нет ли простого примерчика по отправке файла с компа в бот телеги для чата по ID ? На сколько долго живет инфа которая приходит при запросе /getUpdates?offset=-1 ? Сегодня знакомый кинул месагу в бота и я ее видел дав запрос , после часа через 4 я закинул в бот свою месагу и когда хотел увидеть обновления при запросе то увидел только свою месагу. Пробнул /deleteWebhook , ни каких особых изменений в getUpdates? не увидел
|
 |

|
|
|
| |
Пост N: 8001
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.11.24 20:06. Заголовок: Dima пишет: На скол..
Dima пишет: | цитата: | | На сколько долго живет инфа которая приходит при запросе /getUpdates?offset=-1 ? |
| С этим я понял в плане offset , по прежнему UPDATE_ID инфу уже не вытянуть То есть получил в результате запроса UPDATE_ID с номером 10 допустим и пока я ходил курил , кто то боту кинул месагу , я вернулся снова сделал /getUpdates?offset=-1 , и уже получу UPDATE_ID с номером 11 а 10 кильнулся телегой
|
 |

|
|
|
| |
Пост N: 359
Зарегистрирован: 05.10.06
|
|
Отправлено: 30.11.24 21:56. Заголовок: Dima пишет: С этим ..
Dima пишет: | цитата: | | Пробнул /deleteWebhook , ни каких особых изменений в getUpdates? не увидел |
| Этот метод нужно тогда выполнять когда возникает ошибка error_code:409, которая указывает на то что телега работает в режиме webhook, иначе не получить обновления в чате Dima пишет: | цитата: | С этим я понял в плане offset , по прежнему UPDATE_ID инфу уже не вытянуть То есть получил в результате запроса UPDATE_ID с номером 10 допустим и пока я ходил курил , кто то боту кинул месагу , я вернулся снова сделал /getUpdates?offset=-1 , и уже получу UPDATE_ID с номером 11 а 10 кильнулся телегой |
| я глубоко не копал, тоже только тестил, с этим сталкивался, я так понял нужно сразу в свою базу пихать, а вообще доку покури, много уже статей выложено, так же и по отправке файла, но я сам не пробовал отправлять. отправка документа и фото осуществляется методом POST 'https://api.telegram.org/bot'. $token .'/sendDocument' 'https://api.telegram.org/bot'. $token .'/sendPhoto' где в POST записываем поля $arrayQuery = array( 'chat_id' => 1424646511, 'caption' => 'Проверка работы', 'photo' => curl_file_create(__DIR__ . '/cat.jpg', 'image/jpg' , 'cat.jpg') ); $arrayQuery = array( 'chat_id' => 1424646511, 'caption' => 'Проверка работы', 'document' => curl_file_create(__DIR__ . '/cat.jpg', 'image/jpg' , 'cat.jpg') );
|
 |

|
|
|
| |
Пост N: 8002
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.11.24 22:38. Заголовок: MIKHAIL Спасибо , ..
MIKHAIL Спасибо , не совсем ясно с кодом но что то буду думать , хотел код на Harbour MIKHAIL пишет: | цитата: | | Этот метод нужно тогда выполнять когда возникает ошибка error_code:409, которая указывает на то что телега работает в режиме webhook, иначе не получить обновления в чате |
| Понял тебя 
|
 |

|
|
|
| |
Пост N: 360
Зарегистрирован: 05.10.06
|
|
Отправлено: 01.12.24 10:04. Заголовок: Dima пишет: не сов..
Dima пишет: | цитата: | | не совсем ясно с кодом но что то буду думать , хотел код на Harbour |
| а что именно не понятно ? Могу только поделиться своим пониманием, так как не делал сам... Я думаю разобраться не сложно, сам файл передается в переменных POST document, в формате URI | цитата: | Data URI or Data URL format: "data:[<mime type>][;charset=<charset>][;base64],<encoded data>" |
| сами параметры отправляются в формате JSON почитай тут, может понятней будет https://docs.botmother.ru/article/41039#post но все нужно проверять на практике... ну и на сколько я понял через бот нельзя отправить файл больше 50Мб, хотя ограничение на размер 1.5Gb, там есть особенности. Но если файл загружен, то можно потом использовать ссылку на этот файл file_id без повторной его загрузки, полученную в ответе после отправки файла
|
 |

|
|
|
| |
Пост N: 8003
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.12.24 12:17. Заголовок: MIKHAIL я разобрался..
MIKHAIL я разобрался но так и не выходит отправить файл с компа , телега хочет URL на него Покопаю еще гугл
|
 |

|
|
|
| |
Пост N: 8004
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.12.24 14:15. Заголовок: В общем простой спос..
В общем простой способ послать сообщение с помощью LibCurl Func Tg_sendmessage(bot_token,id_chat,cmsg) local curl:=curl_easy_init() local URL:="https://api.telegram.org/bot" local tmp,hret cMsg:=UUrlEncode(hb_strToUtf8(cMsg)) URL+=bot_token+"/sendMessage?chat_id="+id_chat+"&text="+cMsg curl_easy_setopt(curl, HB_CURLOPT_HTTPPOST, 1) curl_easy_setopt(curl, HB_CURLOPT_SSL_VERIFYPEER, 0 ) curl_easy_setopt(curl, HB_CURLOPT_URL, URL) curl_easy_setopt(curl, HB_CURLOPT_DL_BUFF_SETUP ) curl_easy_perform(curl) tmp:=curl_easy_dl_buff_get( curl ) hb_JsonDecode(tmp,@hret) curl_easy_cleanup(curl) return hret Способ 2 ;) Func TG_SendMessage2(bot_token,id_chat,cmsg) local hParams := Hash() local hret hParams["chat_id"]:=id_chat hParams["text"]:=hb_strToUtf8(cmsg) hParams["parse_mode"] := "HTML" hret:=TG_Exec("sendMessage",hParams,bot_token) return hret ********************** Func TG_Exec(cMethod, hParams,bot_token) local curl local url:="https://api.telegram.org/bot"+bot_token+"/" local hret,tmp curl:=curl_easy_init() curl_easy_setopt( Curl, HB_CURLOPT_URL, URL + cMethod ) curl_easy_setopt( Curl, HB_CURLOPT_CUSTOMREQUEST, 'POST' ) curl_easy_setopt( Curl, HB_CURLOPT_POST, .t. ) curl_easy_setopt( Curl, HB_CURLOPT_SSL_VERIFYPEER, .f. ) curl_easy_setopt( Curl, HB_CURLOPT_CONNECTTIMEOUT, 10 ) curl_easy_setopt( Curl, HB_CURLOPT_HTTPHEADER, {"Content-Type: application/json","charset=utf-8"} ) curl_easy_setopt( Curl, HB_CURLOPT_POSTFIELDS, hb_jsonEncode( hParams ) ) curl_easy_setopt( Curl, HB_CURLOPT_DL_BUFF_SETUP ) curl_easy_perform( Curl ) tmp:=curl_easy_dl_buff_get( curl ) curl_easy_cleanup(curl) hb_JsonDecode(tmp,@hret) return hret Func TG_getUpdates(bot_token) local hParams := Hash() local hret hParams["offset"]:=-1 hParams["parse_mode"] := "HTML" hret:=TG_Exec("getUpdates",hParams,bot_token) return hret Вот по 2 способу можно сделать функцию TG_Senddocument и сделал но телега хочет инет линк на документ и локальный файл отправить не удается
|
 |

|
|
|
| |
Пост N: 8005
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.12.24 19:24. Заголовок: Haz пишет: ? aHash..
Haz пишет: | цитата: | | ? aHash["result"][n]["message"]["date"] |
| В каком формате дата ? Подумал было UNIX формат , но нет , не прокатило Пример "date"=>1733071129 // сегодня получил Проехали вроде Set( _SET_DATEFORMAT,"DD/MM/YYYY") ux:=1733071129 nDays := ux / 86400 ? dWinDate := hb_datetime( 1970 , 1 , 1 ) + nDays Правда отличается на 2 часа
|
 |

|
|
|
| |
Пост N: 361
Зарегистрирован: 05.10.06
|
|
Отправлено: 02.12.24 09:33. Заголовок: Dima пишет: Правда ..
Dima пишет: | цитата: | | Правда отличается на 2 часа |
| UTC наверное надо учесть
|
 |

|
|
|
| |
Пост N: 8006
Зарегистрирован: 17.05.05
|
|
Отправлено: 02.12.24 11:38. Заголовок: MIKHAIL пишет: UTC ..
MIKHAIL пишет: да ты прав 
|
 |

|
|
|
| |
Пост N: 8007
Зарегистрирован: 17.05.05
|
|
Отправлено: 02.12.24 19:30. Заголовок: MIKHAIL а есть ли ко..
MIKHAIL а есть ли команда api к боту что бы получить лист юзеров у которых этот бот запущен или для этого есть только getUpdates и всё и там уже нужно выковыривать их ? можно ли присвоить боту пароль , что бы тот кто пароля не знает не мог установить ну или хотя бы запустить у себя бот ? команду deleteWebhook я так понял достаточно дать 1 раз , верно ? есть ли адресок сайта где на русском языке описаны все команды к боту через API cо всеми подробностями как на офф сайте , с english я не очень... ?
|
 |

|
|
|
|
|
| |
Пост N: 362
Зарегистрирован: 05.10.06
|
|
Отправлено: 02.12.24 22:33. Заголовок: Dima пишет: а есть ..
Dima пишет: | цитата: | а есть ли команда api к боту что бы получить лист юзеров у которых этот бот запущен или для этого есть только getUpdates и всё и там уже нужно выковыривать их ? |
| Я поверхностно изучал это вопрос, но так как статей по реализациям уже много, то все легко найти, вот первое попавшееся: как получить список пользователей Dima пишет: | цитата: | можно ли присвоить боту пароль , что бы тот кто пароля не знает не мог установить ну или хотя бы запустить у себя бот ? |
| А зачем ? Пользователь ведь не будет видеть ответа, если он не адресован ему или в групповой чат. Реализация по авторизации на твоей стороне, можешь ждать от пользователя пароля, который и подтвердит что он авторизованный пользователь Dima пишет: | цитата: | | команду deleteWebhook я так понял достаточно дать 1 раз , верно ? |
| Да, она переключает режим бота, иначе в ответе на GetUpdates будет ошибка 409 и ты не получишь обновления, если нет ошибки 409 то и выполнять метод не требуется Dima пишет: | цитата: | есть ли адресок сайта где на русском языке описаны все команды к боту через API cо всеми подробностями как на офф сайте , с english я не очень... ? |
| Полной документации на русском не встречал, сам читал отдельные статейки на разные темы
|
 |

|
|
|
| |
Пост N: 8009
Зарегистрирован: 17.05.05
|
|
Отправлено: 03.12.24 20:43. Заголовок: MIKHAIL Спасибо !..
MIKHAIL Спасибо !
|
 |

|
|
|
| |
Пост N: 699
Зарегистрирован: 17.06.10
|
|
Отправлено: 23.03.25 16:56. Заголовок: Приветствую ! Нет ли..
Приветствую ! Нет ли примерчика считать файл с телеги на комп ?
|
 |

|
|
|
| |
Пост N: 8086
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.04.25 18:44. Заголовок: fil я сам не пробов..
fil я сам не пробовал , но должно пахать тут
|
 |

|
|
|
| |
Пост N: 8191
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.11.25 10:48. Заголовок: Haz пишет: FUNCTION..
Haz пишет: | цитата: | | FUNCTION UUrlEncode( cString ) |
| Кстати символ # она не ловит в отличии от TIP_UrlEncode
|
 |

|
|
Ответов - 36
, стр:
1
2
All
[только новые]
|
|