Кибор » Кибор - Интегрированная среда разработки ботов » Готовые скрипты » Telegram

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

1. Zireael - 05 Февраля, 2022 - 09:26:07 - перейти к сообщению
Длл предназначена для:
Отправки сообщений, изображений, файлов в телеграм.
Получения последнего сообщения.

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]));
2. Denci - 07 Февраля, 2022 - 08:48:54 - перейти к сообщению
Спасибо большое. В какой кодировке отправить смайлик? Пример, пожалуйста. Пол часа пробовал, ничего не получается.
3. Zireael - 07 Февраля, 2022 - 18:39:38 - перейти к сообщению
 Цитата:
отправить смайлик

https://kibor-bot.com/forum/topi...80734#1644280734
4. Budni - 08 Февраля, 2022 - 02:20:56 - перейти к сообщению
Zireael , а можно получить картинку через ссылку? По типу вот такой ссылки например(для просмотра ссылки Вам необходимо авторизоваться) и скачать картинку в папку? Или через любой другой сервис.
5. Zireael - 08 Февраля, 2022 - 03:07:35 - перейти к сообщению
 Цитата:
а можно получить картинку через ссылку?

Вы уже это спрашивали 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);
}
}
6. Budni - 08 Февраля, 2022 - 07:05:42 - перейти к сообщению
 Zireael пишет:
Вы уже это спрашивали

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

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);
}
}
8. Budni - 09 Февраля, 2022 - 10:07:42 - перейти к сообщению
Zireael ,
ссылка получаемая из ТГ приходит в таком виде "http://joxi.ru/DrlP8xetG9GPPr","entities":[{"offset":0,"length":29,"type":"url" как ещё отсечь эту часть?
9. Zireael - 09 Февраля, 2022 - 17:39:43 - перейти к сообщению
 Цитата:
ссылка получаемая из ТГ приходит в таком виде "http://joxi.ru/DrlP8xetG9GPPr","entities":[{"offset":0,"length":29,"type":"url"

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


Вопросы касающиеся регулярных выражений не относятся к этой теме, есть соответствующая.
10. Budni - 09 Февраля, 2022 - 18:32:10 - перейти к сообщению
 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);
}
}

Powered by ExBB FM 1.0 Final