KirillBelov/TelegramBot

(1.0.7) current version: 1.0.17 »

Telegram Bot API client for the Wolfram Language

Contributed by: Kirill Belov

Implementation of the client library for interacting with the Telegram Bots API in the Wolfram Language. With this package, you can execute methods that Telegram Bot API provides to users. In addition, the package has several common features, which provide an opportunity to create a telegram bot that will work in the current session in the long polling mode or deploy the bot to your wolfram cloud storage, where it will work constantly as long as you have enough credits.

Installation Instructions

To install this paclet in your Wolfram Language environment, evaluate this code:
PacletInstall["KirillBelov/TelegramBot"]

Details

The main object that is being worked with in this package is TelegramBot.
All API Methods starting from letter in lower cases.

Paclet Guide

Examples

Basic Examples

Import the package:

In[1]:=
<< KirillBelov`TelegramBot`

Create the Bot:

In[2]:=
bot = InterpretationBox[FrameBox[TagBox[TooltipBox[PaneBox[GridBox[List[List[GraphicsBox[List[Thickness[0.0025`], List[FaceForm[List[RGBColor[0.9607843137254902`, 0.5058823529411764`, 0.19607843137254902`], Opacity[1.`]]], FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[1, 3, 3], List[0, 1, 0], List[1, 3, 3], List[0, 1, 0], List[1, 3, 3], List[0, 1, 0], List[1, 3, 3], List[1, 3, 3], List[0, 1, 0], List[1, 3, 3], List[0, 1, 0], List[1, 3, 3]]], List[List[List[205.`, 22.863691329956055`], List[205.`, 212.31669425964355`], List[246.01799774169922`, 235.99870109558105`], List[369.0710144042969`, 307.0436840057373`], List[369.0710144042969`, 117.59068870544434`], List[205.`, 22.863691329956055`]], List[List[30.928985595703125`, 307.0436840057373`], List[153.98200225830078`, 235.99870109558105`], List[195.`, 212.31669425964355`], List[195.`, 22.863691329956055`], List[30.928985595703125`, 117.59068870544434`], List[30.928985595703125`, 307.0436840057373`]], List[List[200.`, 410.42970085144043`], List[364.0710144042969`, 315.7036876678467`], List[241.01799774169922`, 244.65868949890137`], List[200.`, 220.97669792175293`], List[158.98200225830078`, 244.65868949890137`], List[35.928985595703125`, 315.7036876678467`], List[200.`, 410.42970085144043`]], List[List[376.5710144042969`, 320.03370475769043`], List[202.5`, 420.53370475769043`], List[200.95300006866455`, 421.42667961120605`], List[199.04699993133545`, 421.42667961120605`], List[197.5`, 420.53370475769043`], List[23.428985595703125`, 320.03370475769043`], List[21.882003784179688`, 319.1406993865967`], List[20.928985595703125`, 317.4896984100342`], List[20.928985595703125`, 315.7036876678467`], List[20.928985595703125`, 114.70369529724121`], List[20.928985595703125`, 112.91769218444824`], List[21.882003784179688`, 111.26669120788574`], List[23.428985595703125`, 110.37369346618652`], List[197.5`, 9.87369155883789`], List[198.27300024032593`, 9.426692008972168`], List[199.13700008392334`, 9.203690528869629`], List[200.`, 9.203690528869629`], List[200.86299991607666`, 9.203690528869629`], List[201.72699999809265`, 9.426692008972168`], List[202.5`, 9.87369155883789`], List[376.5710144042969`, 110.37369346618652`], List[378.1179962158203`, 111.26669120788574`], List[379.0710144042969`, 112.91769218444824`], List[379.0710144042969`, 114.70369529724121`], List[379.0710144042969`, 315.7036876678467`], List[379.0710144042969`, 317.4896984100342`], List[378.1179962158203`, 319.1406993865967`], List[376.5710144042969`, 320.03370475769043`]]]]], List[FaceForm[List[RGBColor[0.5529411764705883`, 0.6745098039215687`, 0.8117647058823529`], Opacity[1.`]]], FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[44.92900085449219`, 282.59088134765625`], List[181.00001525878906`, 204.0298843383789`], List[181.00001525878906`, 46.90887451171875`], List[44.92900085449219`, 125.46986389160156`], List[44.92900085449219`, 282.59088134765625`]]]]], List[FaceForm[List[RGBColor[0.6627450980392157`, 0.803921568627451`, 0.5686274509803921`], Opacity[1.`]]], FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[355.0710144042969`, 282.59088134765625`], List[355.0710144042969`, 125.46986389160156`], List[219.`, 46.90887451171875`], List[219.`, 204.0298843383789`], List[355.0710144042969`, 282.59088134765625`]]]]], List[FaceForm[List[RGBColor[0.6901960784313725`, 0.5882352941176471`, 0.8117647058823529`], Opacity[1.`]]], FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[200.`, 394.0606994628906`], List[336.0710144042969`, 315.4997024536133`], List[200.`, 236.93968200683594`], List[63.928985595703125`, 315.4997024536133`], List[200.`, 394.0606994628906`]]]]]], List[Rule[BaselinePosition, Scaled[0.15`]], Rule[ImageSize, 10], Rule[ImageSize, 15]]], StyleBox[RowBox[List["TelegramBot", " "]], Rule[ShowAutoStyles, False], Rule[ShowStringCharacters, False], Rule[FontSize, Times[0.9`, Inherited]], Rule[FontColor, GrayLevel[0.1`]]]]], Rule[GridBoxSpacings, List[Rule["Columns", List[List[0.25`]]]]]], Rule[Alignment, List[Left, Baseline]], Rule[BaselinePosition, Baseline], Rule[FrameMargins, List[List[3, 0], List[0, 0]]], Rule[BaseStyle, List[Rule[LineSpacing, List[0, 0]], Rule[LineBreakWithin, False]]]], RowBox[List["PacletSymbol", "[", RowBox[List["\"KirillBelov/TelegramBot\"", ",", "\"KirillBelov`TelegramBot`TelegramBot\""]], "]"]], Rule[TooltipStyle, List[Rule[ShowAutoStyles, True], Rule[ShowStringCharacters, True]]]], Function[Annotation[Slot[1], Style[Defer[PacletSymbol["KirillBelov/TelegramBot", "KirillBelov`TelegramBot`TelegramBot"]], Rule[ShowStringCharacters, True]], "Tooltip"]]], Rule[Background, RGBColor[0.968`, 0.976`, 0.984`]], Rule[BaselinePosition, Baseline], Rule[DefaultBaseStyle, List[]], Rule[FrameMargins, List[List[0, 0], List[1, 1]]], Rule[FrameStyle, RGBColor[0.831`, 0.847`, 0.85`]], Rule[RoundingRadius, 4]], PacletSymbol["KirillBelov/TelegramBot", "KirillBelov`TelegramBot`TelegramBot"], Rule[Selectable, False], Rule[SelectWithContents, True], Rule[BoxID, "PacletSymbolBox"]][
  "1247031088:AAGW73yzggrm4Tr7bldGCCaIrrwISNsdDzg"]
Out[2]=

Check that bot is available:

In[3]:=
getMe[bot]
Out[3]=

Another way to call methods is following:

In[4]:=
bot@getMe[]
Out[4]=

Get last updates (before this I send to the bot the bot command '/start'):

In[5]:=
updates = bot@getUpdates[]
Out[5]=

Extract last received message:

In[6]:=
message = updates[["result", -1, "message"]]
Out[6]=

Get username:

In[7]:=
user = message[["from", "username"]]
Out[7]=

Get chat id:

In[8]:=
chat = message[["chat", "id"]]
Out[8]=

Create reply text:

In[9]:=
text = StringTemplate["Hi, `1`!"][user]
Out[9]=

And let's send a message to me:

In[10]:=
bot@sendMessage[chat, text]
Out[10]=

The result is:

All action by default saved in the bot history. You can get the history:

In[11]:=
bot["History"]
Out[11]=

For example check last response body:

In[12]:=
Normal[bot["History"]][[1, -1, "Response"]]["Body"]
Out[12]=

Publisher

Kirill Belov

Disclosures

Compatibility

Wolfram Language Version 13

Version History

  • 1.0.17 – 29 March 2024
  • 1.0.16 – 09 January 2024
  • 1.0.15 – 10 April 2023
  • 1.0.14 – 21 December 2022
  • 1.0.13 – 21 December 2022
  • 1.0.12 – 21 December 2022
  • 1.0.11 – 20 December 2022
  • 1.0.10 – 20 December 2022
  • 1.0.9 – 20 December 2022
  • 1.0.8 – 20 December 2022
  • 1.0.7 – 20 December 2022
  • 1.0.6 – 19 December 2022
  • 1.0.5 – 19 December 2022
  • 1.0.4 – 17 December 2022
  • 1.0.3 – 14 December 2022
  • 1.0.2 – 14 December 2022
  • 1.0.1 – 14 December 2022
  • 1.0.0 – 13 December 2022

License Information

MIT License

Paclet Source

Source Metadata