Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 5.43 Работа с HTTPS протоколом

Страниц (6): « 1 2 3 4 5 [6]
 

51. Zireael - 07 Февраля, 2021 - 12:22:03 - перейти к сообщению
 Цитата:
Попробуйте этот код.

В нём хендлы не там закрываются, хотя на работоспособность не влияет. И format возвращает весь массив, т. к. InternetReadFile не дописывает 0.
Исправленный код, добавил вывод ошибок:
code (Отобразить)
52. Brumo - 07 Февраля, 2021 - 12:53:53 - перейти к сообщению
 Zireael пишет:
Исправленный код

...вчера пытался уже с прошлой версией кода...

не работает:



Отладчик (Отобразить)


Отладчик (+Analyzer) (Отобразить)



различия (Отобразить)
53. Zireael - 07 Февраля, 2021 - 17:40:53 - перейти к сообщению
Можно через curl отправить запрос. В win10 уже присутствует, для других надо устанавливать.
CODE:
external(INT, "sprintf_s", "sprintf_s", "msvcrt.dll");

string token = "1539763694:AAFaOKzATphrB3toJJykMjB2LoOEqadQn9o"; // токен (ввести нужный, этот не действителен)
string chat_id = "1581039684"; // id чата (ввести нужный)
string text = "Hello qwerty"; // сообщение


char buf[9999];
sprintf_s(address(#buf[0]), sizearray(buf), "%s%s%s%s%s%s%c", "curl ^"https:/^/api.telegram.org/bot", token,
"/sendMessage?chat_id=", chat_id, "&text=", text, 34);
//messagebox(format(#buf[0]));

if (createpipeprocess("cmd.exe"))
{
sendpipe(format(#buf[0])+"^n");
waitpipe();//Ждем пока отработает и появятся данные
sleep(500);//для надежности
int C;
string S;
getpipe(#S);//Читаем
messagebox (S);

closepipeprocess();//Завершим процесс и закрываем канал
}

Текст должен быть utf-8, нужно конвертировать если оправлять что-то кроме латиницы.
(Добавление)
Отправка сообщения в чат телеграмма через python:
CODE:
external(INT, "sprintf_s", "sprintf_s", "msvcrt.dll");

string token = "1539763694:AAFaOKzATphrB3toJJykMjB2LoOEqadQn9o"; // токен (ввести нужный, этот не действителен)
string chat_id = "1581039684"; // id чата (ввести нужный)
string text = "Hello qwerty"; // сообщение


if (runpython()==0){messagebox ("Не удалось запустить Python"); goto er;}
//enableconsolepython(1, 1, 50, 50, 800, 600);


char buf[9999];
sprintf_s(address(#buf[0]), sizearray(buf), "%s%s%s%s%s%s%c%c", "requests.post(r^"https:/^/api.telegram.org/bot", token,
"/sendMessage?chat_id=", chat_id, "&text=", text, 34, ')');
//messagebox(format(#buf[0]));

sendgetpython("import requests^n"); // загрузка модуля
sendgetpython(format(#buf[0])+"^n"); // отправка запроса

closepython();
er:;
54. Brumo - 08 Февраля, 2021 - 09:35:41 - перейти к сообщению
Zireael , Спасибо огромное.

 Zireael пишет:
Отправка сообщения в чат телеграмма через python:

За это отдельное спасибо, как раз думал как прикрутить API client Telegram в код для управления, теперь есть отправная точка.

...в справке не нашел, но оказалось что можно в sendgetpython, подставить значение string таким способом:

 Цитата:
sendgetpython("response = requests.post(^'https:/^/api.telegram.org/botТУТ ТОКЕН/sendMessage^', params = ^x7B^'chat_id^':^'ТУТ CHAT_ID^', ^'text^':^'"+text_value+"^'^x7D)");

CODE:
string text_value="Hello qwerty";// сообщение

runpython();
//enableconsolepython(1, 1, 50, 50, 800, 600);
sendgetpython("import requests");
sendgetpython("response = requests.post(^'https:/^/api.telegram.org/botТУТ ТОКЕН/sendMessage^', params = ^x7B^'chat_id^':^'ТУТ CHAT_ID^', ^'text^':^'"+text_value+"^'^x7D)");
messagebox (sendgetpython("print(response.json())"));
closepython();


не уверен что это правильно, но код работает.
55. Kibor - 17 Апреля, 2021 - 02:19:09 - перейти к сообщению
Как скачать файл и распаковать его -(для просмотра ссылки Вам необходимо авторизоваться)
56. mrLSV - 10 Июня, 2021 - 10:03:04 - перейти к сообщению
Всем привет !
Подскажите, как отправить скрин в телеграм ?
57. Zireael - 10 Июня, 2021 - 19:15:03 - перейти к сообщению
 Цитата:
Подскажите, как отправить скрин в телеграм ?

Создать бота в телеграмм, отправить ему картинку.
Для win10:
CODE:
external(INT, "sprintf_s", "sprintf_s", "msvcrt.dll");

char buf[9999];
initialarray(#buf[0], 0);

string token = "1539763694:AAFaFKzAEphrB7toNJykMjB0LoOKqadQn5o"; // токен (ввести нужный, этот не действителен)
string chat_id = "1583009384"; // id чата (ввести нужный)
string path_to_file = "C:/screen3.jpeg"; // путь к картинке


sprintf_s(address(#buf[0]), sizearray(buf), "%s%c%s%c%s%s%s%s", "curl -F document=@", 34, path_to_file, 34,
" https:/^/api.telegram.org/bot", token, "/sendDocument?chat_id=", chat_id);
//messagebox(format(#buf[0]));

if (createpipeprocess("cmd.exe"))
{
sendpipe(format(#buf[0])+"^n");
waitpipe();
sleep(500);
string S;
getpipe(#S);
//messagebox (S);
closepipeprocess();
}
58. Kibor - 15 Февраля, 2022 - 12:47:00 - перейти к сообщению
Доработка sendgetweb
Не обязательным последним параметром можно указать время в милисекундах, после которого функция завершает работу при нерабочем подключение.

Данная функция надолго зависнет при нерабочем подключение.
 Цитата:
string T;
sendgetweb(#T, "Бот", "GET", "https:/^/kibor-bot.com", "forum");


Данная функция через 3 секунды завершит работу при нерабочем подключение.
 Цитата:
string T;
sendgetweb(#T, "Бот", "GET", "https:/^/kibor-bot.com", "forum", 3000);
59. nodeman - 25 Марта, 2023 - 21:12:00 - перейти к сообщению
У sendgetweb есть возможность получить statuscode?

Powered by ExBB FM 1.0 Final