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

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

 Страниц (3): [1] 2 3 »   

> Описание: Отправка сообщений, изображений, файлов в телеграм.
Zireael
Отправлено: 05 Февраля, 2022 - 17:26:07
Post Id



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


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




Длл предназначена для:
Отправки сообщений, изображений, файлов в телеграм.
Получения последнего сообщения.

https://drive.google.com/file/d/...view?usp=sharing
Архив извлечь, файлы закинуть в папку с кибор.

Создаём бота в телеграм, получаем token и chat_id.

Функции:
  • sendtelegrammessage - отправить сообщение
  • sendtelegramphoto - отправить изображение
  • sendtelegramdocument - отправить файл
  • gettelegrammessage - получить последнее сообщение

Параметры функций:
  • sendtelegrammessage (токен, чат id, текст сообщения, указатель на массив char или 0)
  • sendtelegramphoto (токен, чат id, путь к файлу, подпись, указатель на массив char или 0)
  • sendtelegramdocument (токен, чат id, текст сообщения, подпись, указатель на массив char или 0)
  • gettelegrammessage (токен, чат id, указатель на массив char)

Если последним параметром функций указан адрес массива char, то она вернёт количество записанных символов. Ответ от сервера запишется в массив в виде JSON.
gettelegrammessage возвращает текст сообщения.

Примеры использования:

Отправить сообщение:
CODE:
external(INT, "sendtelegrammessage", "sendtelegrammessage", "SendTelegram.dll");

string token="1234567890:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // токен
string chat_id="1234567890"; // id чата
sendtelegrammessage(token, chat_id, "Hello", 0);


Отправить сообщение и получить ответ в формате JSON:
CODE:
external(INT, "sendtelegrammessage", "sendtelegrammessage", "SendTelegram.dll");

char response[9999];
sendtelegrammessage("1234567890:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "1234567890", "Hello2", address(#response[0]));
messagebox(format(#response[0]));

Отправить изображение:
CODE:
external(INT, "sendtelegramphoto", "sendtelegramphoto", "SendTelegram.dll");

string PathToImage = tempfolder()+"tmpImage.jpg"; // путь куда сохранить скрин
savescreen(JPG, PathToImage, 0, 0, 300, 200, -1); // сохранить скрин части экрана
sendtelegramphoto("1234567890:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "1234567890", PathToImage, "", 0);

Отправить изображение и получить ответ в формате JSON:
CODE:
external(INT, "sendtelegramphoto", "sendtelegramphoto", "SendTelegram.dll");

char response[9999];
string PathToImage = tempfolder()+"tmpImage.jpg"; // путь куда сохранить скрин
savescreen(JPG, PathToImage, 200, 100, 600, 500, -1); // сохранить скрин части экрана
sendtelegramphoto("1234567890:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "1234567890", PathToImage, "Подпись", address(#response[0]));
messagebox(format(#response[0]));

Отправить файл:
CODE:
external(INT, "sendtelegramdocument", "sendtelegramdocument", "SendTelegram.dll");

string Path = tempfolder()+"tmpFile.txt"; // путь к файлу

// для примера создать файл, записать в него несколько строк
if(fopen(Path, "w"))
{
fwrite("Строка1");
fwrite(ENDL);
fwrite("Строка2");
fclose();
}

sendtelegramdocument("1234567890:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "1234567890", Path, "", 0);

Отправить файл и получить ответ в формате JSON:
CODE:
external(INT, "sendtelegramdocument", "sendtelegramdocument", "SendTelegram.dll");

int color, x, y;
char response[9999];
string Path = tempfolder()+"ScreenTmp.jpg";

getdisplay(color, x, y); // получить размеры экрана
savescreen(JPG, Path, 0, 0, x, y, -1); // сохранить скрин экрана

// отправить скрин
sendtelegramdocument("1234567890:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "1234567890", Path, "", address(#response[0]));
messagebox(format(#response[0]));

Получить последнее сообщение:
CODE:
external(INT, "gettelegrammessage", "gettelegrammessage", "SendTelegram.dll");

char response[9999];
gettelegrammessage("1234567890:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "1234567890", address(#response[0]));
messagebox(format(#response[0]));
 
 Top
Denci
Отправлено: 07 Февраля, 2022 - 16:48:54
Post Id



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


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




Спасибо большое. В какой кодировке отправить смайлик? Пример, пожалуйста. Пол часа пробовал, ничего не получается.
 
 Top
Zireael
Отправлено: 08 Февраля, 2022 - 02:39:38
Post Id



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


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




 Цитата:
отправить смайлик

https://kibor-bot.com/forum/topi...80734#1644280734
 
 Top
Budni
Отправлено: 08 Февраля, 2022 - 10:20:56
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 418
Дата рег-ции: Март 2018  
Репутация: 2




Zireael , а можно получить картинку через ссылку? По типу вот такой ссылки например(для просмотра ссылки Вам необходимо авторизоваться) и скачать картинку в папку? Или через любой другой сервис.
 
 Top
Zireael
Отправлено: 08 Февраля, 2022 - 11:07:35
Post Id



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


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




 Цитата:
а можно получить картинку через ссылку?

Вы уже это спрашивали https://kibor-bot.com/forum/topi...5&topic=1435
CODE:
char c[9999999];
string path = "C:\Image123.jpg"; // куда сохранить картинку

int k = sendgetweb(#c[0], "Bot", "POST", "https:/"+"/joxi.ru","DrlP8xetG9GPPr.jpg");
if(k>0)
{
if(fopen(path, "wb"))
{
fwriteb(#c[0], k);
fclose();
start(path);
}
}
 
 Top
Budni
Отправлено: 08 Февраля, 2022 - 15:05:42
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 418
Дата рег-ции: Март 2018  
Репутация: 2




 Zireael пишет:
Вы уже это спрашивали

Да спасибо, я это помню, но я имел ввиду как из телеграмм вытащить ссылку и сохранить, я в регулярных выражениях, сколько не брался не могу сообразить как.
Так, чтобы разделить ссылку полученную как нужно "https:/"+"/joxi.ru","DrlP8xetG9GPPr.jpg"
 
 Top
Zireael
Отправлено: 09 Февраля, 2022 - 01:38:10
Post Id



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


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




 Цитата:
разделить ссылку

CODE:
string link = "http:/"+"/joxi.ru/DrlP8xetG9GPPr";
messagebox(link);

string domain, file;
if(regexsearch(1, #domain, link, ".+(?=/)"))
{
messagebox(domain);
if(regexsearch(1, #file, link, "(?<=/).+?", RIGHTTOLEFT))
{
messagebox(file);
}
}

(Отредактировано автором: 09 Февраля, 2022 - 01:38:40)

 
 Top
Budni
Отправлено: 09 Февраля, 2022 - 18:07:42
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 418
Дата рег-ции: Март 2018  
Репутация: 2




Zireael ,
ссылка получаемая из ТГ приходит в таком виде "http://joxi.ru/DrlP8xetG9GPPr","entities":[{"offset":0,"length":29,"type":"url" как ещё отсечь эту часть?
 
 Top
Zireael
Отправлено: 10 Февраля, 2022 - 01:39:43
Post Id



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


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




 Цитата:
ссылка получаемая из ТГ приходит в таком виде "http://joxi.ru/DrlP8xetG9GPPr","entities":[{"offset":0,"length":29,"type":"url"

Если нужен пример, то пишите строку так чтобы можно было запустить скрипт в кибор.
CODE:
string link = "http:/"+"/joxi.ru/DrlP8xetG9GPPr";
messagebox(link);


Вопросы касающиеся регулярных выражений не относятся к этой теме, есть соответствующая.

(Отредактировано автором: 10 Февраля, 2022 - 01:57:25)

 
 Top
Budni
Отправлено: 10 Февраля, 2022 - 02:32:10
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 418
Дата рег-ции: Март 2018  
Репутация: 2




 Zireael пишет:
Вопросы касающиеся регулярных выражений не относятся к этой теме, есть соответствующая.
Да вопрос касается как получить картинку из тг, думаю многим будет это полезно.
Просто решение в составлении правильной регулярки.

Нужно получить картинку с ТГ. Если можно на прямую было бы здорово, но хотя бы через ссылку тоже подойдет.
Вот весь код в сборе. Но ссылка вида(для просмотра ссылки Вам необходимо авторизоваться) отправленная в ТГ приходит в таком виде.
http:/"+"/joxi.ru/DrlP8xetG9GPPr ,"entities":[{"offset":0,"length":29,"type":"url"
Из за чего способ разделения как вы показали не подойдет.

CODE:
external(INT, "sendtelegrammessage", "sendtelegrammessage", "SendTelegram.dll");
external(INT, "gettelegrammessage", "gettelegrammessage", "SendTelegram.dll");

string token="xxxx:xxxxxxxxxxxx"; // токен
string chat_id="xxxx"; // id чата
char response[9999];

gettelegrammessage("xxxx:xxxx", "xxxx", address(#response[0]));

string link = format(#response[0]);
messagebox(link);

string domain, file;
if(regexsearch(1, #domain, link, ".+(?=/)"))
{
messagebox(domain);
if(regexsearch(1, #file, link, "(?<=/).+?", RIGHTTOLEFT))
{
messagebox(file);
}
}


char c[9999999];
string path = "C:\Image123.jpg"; // куда сохранить картинку

int k = sendgetweb(#c[0], "Bot", "POST", domain, file);
if(k>0)
{
if(fopen(path, "wb"))
{
fwriteb(#c[0], k);
fclose();
start(path);
}
}
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Готовые скрипты »


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




Powered by