On-line: гостей 4. Всего: 4 [подробнее..]
АвторСообщение



Пост N: 652
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 24.10.22 10:21. Заголовок: Чатбот


Приветствую !

У каждого клиента свой чатбот. Ключи в базе и я могу разослать сообщения тому или иному на телефон. Все работает. Можно ли сделать так - бот только один, а клиенты, по токену, к нему подключаются ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 36 , стр: 1 2 All [только новые]


администратор




Пост N: 8000
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.11.24 19:18. Заголовок: MIKHAIL Привет. А н..


MIKHAIL
Привет.
А нет ли простого примерчика по отправке файла с компа в бот телеги для чата по ID ?
На сколько долго живет инфа которая приходит при запросе /getUpdates?offset=-1 ?
Сегодня знакомый кинул месагу в бота и я ее видел дав запрос , после часа через 4
я закинул в бот свою месагу и когда хотел увидеть обновления при запросе
то увидел только свою месагу.
Пробнул /deleteWebhook , ни каких особых изменений в getUpdates? не увидел

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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 кильнулся телегой

Спасибо: 0 
ПрофильЦитата Ответить





Пост 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')
);


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8002
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.11.24 22:38. Заголовок: MIKHAIL Спасибо , ..


MIKHAIL
Спасибо , не совсем ясно с кодом но что то буду думать , хотел код на Harbour
MIKHAIL пишет:

 цитата:
Этот метод нужно тогда выполнять когда возникает ошибка error_code:409, которая указывает на то что телега работает в режиме webhook, иначе не получить обновления в чате


Понял тебя

Спасибо: 0 
ПрофильЦитата Ответить





Пост 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 без повторной его загрузки, полученную в ответе после отправки файла

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8003
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.12.24 12:17. Заголовок: MIKHAIL я разобрался..


MIKHAIL я разобрался но так и не выходит отправить файл с компа , телега хочет
URL на него
Покопаю еще гугл

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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 и сделал но телега хочет инет линк
на документ и локальный файл отправить не удается

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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 часа

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 361
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 02.12.24 09:33. Заголовок: Dima пишет: Правда ..


Dima пишет:

 цитата:
Правда отличается на 2 часа


UTC наверное надо учесть

Спасибо: 0 
ПрофильЦитата Ответить
администратор




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


MIKHAIL пишет:

 цитата:
UTC наверное надо учесть


да ты прав

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8007
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 02.12.24 19:30. Заголовок: MIKHAIL а есть ли ко..


MIKHAIL а есть ли команда api к боту что бы получить лист юзеров у которых этот бот запущен или
для этого есть только getUpdates и всё и там уже нужно выковыривать их ?
можно ли присвоить боту пароль , что бы тот кто пароля не знает не мог установить ну или хотя бы
запустить у себя бот ?
команду deleteWebhook я так понял достаточно дать 1 раз , верно ?
есть ли адресок сайта где на русском языке описаны все команды к боту через API cо всеми подробностями
как на офф сайте , с english я не очень... ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост 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 я не очень... ?


Полной документации на русском не встречал, сам читал отдельные статейки на разные темы

Спасибо: 0 
ПрофильЦитата Ответить
администратор




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


MIKHAIL
Спасибо !

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 699
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 23.03.25 16:56. Заголовок: Приветствую ! Нет ли..


Приветствую ! Нет ли примерчика считать файл с телеги на комп ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8086
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.04.25 18:44. Заголовок: fil я сам не пробов..


fil
я сам не пробовал , но должно пахать
тут

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8191
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.11.25 10:48. Заголовок: Haz пишет: FUNCTION..


Haz пишет:

 цитата:
FUNCTION UUrlEncode( cString )


Кстати символ # она не ловит в отличии от TIP_UrlEncode

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 36 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 94
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет