Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Описание: Отправка и получение ответа на сайты по HTTPS, HTTP протоколу
Zireael
Отправлено: 07 Февраля, 2021 - 20:22:03
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4395
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
Попробуйте этот код.

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



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 28
Дата рег-ции: Февр. 2020  
Репутация: 7




 Zireael пишет:
Исправленный код

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

не работает:



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


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



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

(Отредактировано автором: 07 Февраля, 2021 - 21:11:55)

 
 Top
Zireael
Отправлено: 08 Февраля, 2021 - 01:40:53
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4395
Дата рег-ции: Нояб. 2017  
Репутация: 580




Можно через 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:;
 
 Top
Brumo
Отправлено: 08 Февраля, 2021 - 17:35:41
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 28
Дата рег-ции: Февр. 2020  
Репутация: 7




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();


не уверен что это правильно, но код работает.
 
 Top
Kibor
Отправлено: 17 Апреля, 2021 - 10:19:09
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8094
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Как скачать файл и распаковать его -(для просмотра ссылки Вам необходимо авторизоваться)
 
 Top
mrLSV
Отправлено: 10 Июня, 2021 - 18:03:04
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 1
Дата рег-ции: Июнь 2021  
Репутация: 0




Всем привет !
Подскажите, как отправить скрин в телеграм ?
 
 Top
Zireael
Отправлено: 11 Июня, 2021 - 03:15:03
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4395
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
Подскажите, как отправить скрин в телеграм ?

Создать бота в телеграмм, отправить ему картинку.
Для 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();
}
 
 Top
Kibor
Отправлено: 15 Февраля, 2022 - 20:47:00
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8094
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Доработка sendgetweb
Не обязательным последним параметром можно указать время в милисекундах, после которого функция завершает работу при нерабочем подключение.

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


Данная функция через 3 секунды завершит работу при нерабочем подключение.
 Цитата:
string T;
sendgetweb(#T, "Бот", "GET", "https:/^/kibor-bot.com", "forum", 3000);
 
 Top
nodeman
Отправлено: 26 Марта, 2023 - 05:12:00
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 6
Дата рег-ции: Авг. 2020  
Репутация: 0




У sendgetweb есть возможность получить statuscode?
 
 Top
Страниц (6): « 1 2 3 4 5 [6]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by