27

Telegram Bot Platform is dying

 4 years ago
source link: https://medium.com/@thedanpetrov/telegram-bot-platform-is-dying-36807d7f5b03
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Telegram Bot Platform is dying

May 2 ·4min read

Qny6Rvv.jpg!web

Photo by Christian Wiediger on Unsplash

Once upon a time in June 2015, Telegram launched the Bot API . Chat bots seemed to be taking off in different messengers, and were promised to be the new way in which people would use web services, interact with businesses — it was supposed to replace most of what we do, such as ordering a pizza or tracking a package. Somewhere along the way, we have gone past the hype curve and are now on our way to the slope of enlightenment . We realised that we should stop seeing everything as a nail, and instead focus on solving actual problems. I will mostly be focusing on the Telegram Bot platform .

Finding the Bot API on the Telegram website is a nightmare. If you go to https://core.telegram.org/ and try to click links mentioned the Bot API, you will just see marketing pages with lists of features. It does not help that the Telegram API (for building custom Telegram clients) the Bot API and the Payments API are jumbled on the same page, adding to the confusion.

veMVZzy.png!web

https://core.telegram.org/api

There are no code examples , curl or similar. All you get is a bunch of tables with parameter names and types. While this might be acceptable for experienced developers, this can be discouraging for beginner developers. I am also very happy when curl blocks are provided, as you can easily copy and paste them into your favourite REST client like Postman or Insomnia and start experimenting right away. Here is an example of it by Cloudflare .

yiI7ZzZ.png!web

https://core.telegram.org/bots/api

The structure of the API docs is a mess . It feels like it was made by an engineer for machines, because that is exactly how well a human being can interpret it. It is just one long list of methods in no particular order: setters mixed with getters and deleter methods, with no functional grouping. Leaving it up to people’s brains to perform simple hierarchical nesting just demonstrates ignorance from the creators.

nQFzIv3.png!web

The design of the API is garbage and does not follow any REST design patterns. From the above image, it is clear that the design of the API is a disaster in its current form. Instead of utilising existing HTTP methods (e.g. POST , GET , DELETE etc.), Telegram has decided to re-implement them by putting the method names in the resource URL, and accepting only GET and POST HTTP methods in requests. This is confusing, non-standard, and creates additional complexity. E.g. GET: /getUpdates vs GET: /updates .

Telegram Bot API designers don’t know about the existence of HTTP headers . Bots are authorised by generating symmetric auth tokens:

yUBVzqb.png!web

However, this approach of including a token in the URL path is unconventional and prone to errors . A much better approach would be at least adding it as a query param or ideally as a standard Authorization: Bearer token header value.

Some essential methods are simply non-existent as of the time of writing. For example, an issue I encountered is that it is impossible to get an array of chat members, but you can get an array of administrators?

The Telegram Bot ecosystem is severely fragmented . There is no dedicated official website for bots, there is no official list of all known, active and working bots. There are no provided ways of getting metrics directly from Telegram — it is up to developers. There is no clear way in which people can monetise their bots, or why they should even bother — Telegram isn’t sponsoring any library or bot developers, or doing any active promotions. Instead they decided it was more important to add a dart sticker rather than fix their API docs.

This is not to say that Telegram Bots are completely dead. There are many use-cases for businesses and communities, and it is an open platform that is easy to sign up for. But ifTelegram Messenger wants to grow the ecosystem, it is time to start paying more attention, listening to developers, and stop going off the beaten track just for the sake of being “different”. I am not complaining about choosing MTProto , but avoiding usage of proper HTTP methods is unacceptable.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK