Телеграм бот Octopic

Помимо плагина под Chrome и Desktop приложения, для нашего сервиса Octopic.ru мы решили выпустить также и телеграм бота octopicbot. Суть бота проста — после авторизации он позволяет искать картинки по вашей коллекции и постить их в чатики. В этой статье я хочу поделиться опытом разработки ботов телеграм, благо, недокументированных особенностей там хватает.

Первое что хочется отметить — объект InlineQueryResultPhoto, у которого в поле photo_url обязательно должно быть указанно расширение. Без этого не работает. Так же, нигде не указанны минимальные размеры фоток и миниатюр, хотя они есть. Опытным путем мы пришли к минимальному разрешению в 512px для каждой стороны.

Второй момент — так как телеграм мультиплатформенное приложение, поведение клиентов на разных платформах может сильно отличатся. К примеру, на момент написания статьи, web клиент не показывал кнопку, описанную в answerInlineQuery в поле switch_pm_text если поле result содержало пустой массив. При этом приложение под Android и IOs прекрасно работали. Так что если что-то не получается на одной платформе — не расстраивайтесь и проверьте на другой. Может статься, что проблема не в вас, а в особенностях телеграм клиента.

И на последок — мы разрабатывали бота на Laravel c применением библиотеки telegram-bot-sdk. Проблема библиотеки в том, что она отстает в реализации Telegram API. Так что перед её использованием рекомендую убедится, что библиотека поддерживает все необходимые вам методы. В противном случае она только усложнит разработку бота.