Здравствуйте, гость ( Вход | Регистрация )

> Отправка в телеграм сообщения, файла
cirus
сообщение 3.5.2022, 14:42
Сообщение #1


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26757
Пользователь №: 16.971
Возраст: 29



Прикрепленный файл  Telegram.zip ( 407,63 килобайт ) Кол-во скачиваний: 427

Архив распаковать рядом с exe пилота.

Создаём бота в телеграмм, получает токен и ид чата.
Пример использования:
Код
--lua
local ffi = require('ffi')
local telegramm = ffi.load('SendTelegram.dll')
log 'clear' log 'mode compact'

ffi.cdef[[
    int sendtelegrammessage(const char* token, const char* chat_id, const char* text, char* result);
    int sendtelegramphoto(const char* token, const char* chat_id, const char* path_to_photo, const char* caption, char* result);
    int sendtelegramdocument(const char* token, const char* chat_id, const char* path_to_photo, const char* caption, char* result);
    int gettelegrammessage(const char* token, const char* chat_id, char* result);
    int gettelegramdocument(const char* token, const char* chat_id, const char* path_to_document);
]]

local token="1234567890:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -- token, указать свой
local chat_id="1234567890" -- id chat, указать свой. Здесь должны быть цифры. Формат @name более не поддерживается телеграмом.

telegramm.sendtelegrammessage(token, chat_id, "Текст сообщения", nil)   -- отправить сообщение

printscreen (0, 0, 0, 0, 0, [[C:\window.jpg]])  -- сохранить скрин экрана
telegramm.sendtelegramphoto(token, chat_id, [[C:\window.jpg]], "", nil)    -- отправить фото
telegramm.sendtelegramdocument(token, chat_id, [[C:\window.jpg]], "", nil) -- отправить файл

local response = ffi.new('char[9999]')
telegramm.sendtelegrammessage(token, chat_id, "Текст сообщения", response)   -- отправить сообщение и получить ответ в формате JSON
log(ffi.string(response))

Ожидание сообщения от бота:
Код
--lua
local ffi = require('ffi')
local telegram = ffi.load('SendTelegram.dll')
log 'clear' log 'mode compact'
ffi.cdef[[
    int gettelegrammessage(const char* token, const char* chat_id, char* result);
]]

local token="1234567890:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -- token, указать свой
local chat_id="1234567890" -- id chat, указать свой. Здесь должны быть цифры. Формат @name более не поддерживается телеграмом.

local new_message, last_message = ffi.new('char[999]')
telegram.gettelegrammessage(token, chat_id, new_message)      -- получить последнее сообщение
log ('Последнее сообщение: ' .. ffi.string(new_message))
last_message = ffi.string(new_message)                        -- запомнить текст сообщения

log ('Ожидание нового сообщения')
while true do
    telegram.gettelegrammessage(token, chat_id, new_message)   -- получить последнее сообщение
    if ffi.string(new_message) ~= last_message then            -- если сообщение не совпадает с последним
        -- тут нужные действия в зависимости от текста сообщения
        log('Новое сообщение: ' .. ffi.string(new_message))
        break
    end
    wait (2000)
end


Сообщение отредактировал DarkMaster - 3.8.2022, 22:49
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Madeus
сообщение 3.8.2022, 22:14
Сообщение #2


*****

Journeyman
Сообщений: 317
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 10860
Пользователь №: 19.451
Возраст: 32



Я в итоге отказался от этого решения, пользуюсь своим работает без проблем. Руки не доходят оформить пост и выложить, да и не знаю как лучше сделать, выложить в эту тему или сделать новую.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
apaul
сообщение 8.8.2022, 12:38
Сообщение #3


**

Neophyte
Сообщений: 36
Регистрация: 19.8.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.051



Цитата(Madeus @ 3.8.2022, 22:14) *

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

Очень стало интересно. А то захотел прикрутить в дополнение с отчетам, еще и управление к скрипту, а оказалось что это решение у меня при отправке работает прекрасно, а вот с получением сообщений полная беда. Просто по
Код
telegram.gettelegrammessage(token, chat_id, new_message)
ничего не приходит (IMG:style_emoticons/default/sad.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 8.8.2022, 17:09
Сообщение #4


*****

Journeyman
Сообщений: 317
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 10860
Пользователь №: 19.451
Возраст: 32



Цитата(apaul @ 8.8.2022, 12:38) *

Очень стало интересно. А то захотел прикрутить в дополнение с отчетам, еще и управление к скрипту, а оказалось что это решение у меня при отправке работает прекрасно, а вот с получением сообщений полная беда. Просто по
Код
telegram.gettelegrammessage(token, chat_id, new_message)
ничего не приходит (IMG:style_emoticons/default/sad.gif)

Скоро выложу
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
cirus   Отправка в телеграм сообщения, файла   3.5.2022, 14:42
DarkMaster   В Н И М А Н И Е ! ! ! chat id - это ци...   3.5.2022, 16:40
Izatii   Крутая тема, встал вопрос, как вставить в сообщени...   4.5.2022, 23:50
DarkMaster   Всмысле? a = "вася" b = a   5.5.2022, 0:11
Cockney   видимо нужно так a = 10 text = 'msg ' + ...   5.5.2022, 0:24
cirus   --lua local ffi = require('ffi') l...   5.5.2022, 1:44
Izatii   Спасибо!   5.5.2022, 2:24
cirus   Добавил в первый пост пример как ожидать сообщения...   7.5.2022, 13:36
apaul   Интересная штука, спасибо. А нельзя как-то пилоту ...   8.5.2022, 17:30
DarkMaster   package.cpath package.path Это по сути обычные те...   8.5.2022, 18:58
Madeus   В общем потестил сутки работало ок, теперь не поня...   13.5.2022, 22:16
NikitaRat   Работал пару месяцев, в один момент перестал работ...   12.6.2022, 20:14
DarkMaster   Лучше в новую. Прилеплю тему наверх, все дела.   4.8.2022, 11:02


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 8.7.2025, 8:10
Designed by Nickostyle