It is possible to use Odysseus together with Telegram (https://telegram.org/). You need to install the Telegram Wrapper Feature.
The communication is done via a Telegram Bot (https://core.telegram.org/bots).
So you first need to create a new telegram bot and get the token.See https://core.telegram.org/bots#6-botfather
Now you can create a source in Odysseus:
#PARSER PQL #RUNQUERY telegram := RECEIVE({ transport = 'Telegram', source = 'Telegram', datahandler = 'KeyValueObject', OPTIONS = [['telegram.api.token','PLACE YOUR TOKEN HERE']] } )
You can now process the data. In the following simple example a response is send to the sender.
Remark: The SENDER currently only supports KeyValueObjects with the attributes: "chart.id" as long and "text" as String.
#PARSER PQL #ADDQUERY message = KEYVALUETOTUPLE({ schema = [ ['message.message_id','long'], ['message.from.id','long'], ['message.from.first_name','String'], ['message.from.last_name','String'], ['message.from.username','String'], ['message.chat.id','long'], ['message.chat.first_name','String'], ['message.chat.last_name','String'], ['message.chat.username','String'], ['message.chat.type','String'], ['message.date','long'], ['message.text','String'] ], keepinput = false, type = 'Message' }, telegram ) reply = MAP({ expressions = [ ['message.chat.id','chat.id'], ['"Hallo " + message.from.first_name','text'] ] }, message ) replyKV = TUPLETOKEYVALUE(reply) out = SENDER({ transport = 'Telegram', protocol = 'None', sink = "OdysseusTelegram", wrapper = "GenericPush", options = [ ['telegram.api.token','PLACE YOUR TOKEN HERE'] ] }, replyKV )