Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: novhome on June 05, 2021, 06:02:51 PM
-
Зравствуйте!
Столкнулся с проблемой. Никак не могу понять, как отправить текст в чат Telegram напрямую из Clickermann.
Отправка через браузер работает, а можно ли напрямую?
-
// Клики в строку сообщения
TOCLIP("Текст")
WAITMS (10)
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#V)
KEYUP (#CTRL)
WAITMS (50)
// Скрипт отправляет сообщение
-
Наверное, я неправильно описал ситуацию.
Пытаюсь отправить сообщение telegram-боту через HTTPGET
HTTPGET("https://api.telegram.org/bot<token>/sendMessage?chat_id=<chat_id>&text=Test")
В errorlog.txt получаю ошибку HTTPGET Error.
Если в качестве ссылки вставить, например, "https://yandex.ru", то ошибки нет.
Windows 7x64. Clickermann v.4.13.014x32. Рядом с экзешником лежат libeay32.dll и ssleay32.dll.
Если вставить ссылку в браузер, то все срабатывает и боту приходит текст.
Куда копать никак не пойму.
-
Может функция HTTPGET примитивная и ждёт HTML, а здесь приходит JSON.
Мне не удавалось получить ответ и на другом ресурсе, где возвращается 'Content-Type': 'application/json'
P.S. Но я попробовал костыль через curl в cmd, всё работает.
$url = "https://api.telegram.org/bot<token>/sendMessage?chat_id=<chat_id>&text="
$text = "Hoba!"
EXECUTE("cmd.exe", STRCONCAT("/C curl ", CHAR(34), $url, $text, CHAR(34)))
HALT
curl уже встроен начиная с Windows 10 v 1803
-
Спасибо за наводку.
Получилось через curl, но немного пришлось поправить код. HTTPGET не нужен, с ним curl выдает ошибку.
Сделал так:
$url = "https://api.telegram.org/bot<token>/sendMessage?chat_id=<chat_id>&text="
$text = "Hoba!"
EXECUTE("cmd.exe", STRCONCAT("/C curl ", CHAR(34), $url, $text, CHAR(34)))
HALT
[size=78%]В процессе отладки выяснилось, что через curl не отправляется текст на кириллице (выдает ошибку, что текст не UTF-8). Возможно, это настраивается, но я не нашел.[/size]
[/size][size=78%]В скрипте требуется отправка сообщений на кириллице.[/size]
-
HTTPGET конечно не нужен, это случайно скопировал твой пример без редактирования, я то использовал реальный токен и id..
А кириллица по стандарту и не может быть в запросе. В любом случае русский текст и англ. текст с пробелами или не ASCII нужно перекодировать url-энкодером.
Пробел это %C и т.д. если замечал в адресной строке.
-
Нужно или предварительно перекодировать строку энкодером если набор строк постоянный, или перекодировать онлайн ресурсами на лету, или самому написать энкодер.