Вопрос или проблема
У меня был проект по созданию минималистичного телефона с микроконтроллером и SIM-модуль.
Основной особенностью должно было стать возможность общения через WhatsApp. Но, поиграв с Twilio и другими подобными провайдерами, я понял, что WhatsApp Business API (как предполагается) не предназначен для того, чтобы свободно отправлять сообщения своим друзьям, а больше для отправки шаблонных сообщений, которые сначала должны быть одобрены WhatsApp.
Но также для других мессенджеров (например, Telegram) я всегда натыкался на “API ботов“, которые позволяют общаться только с вашим собственным номером, но ничего больше. Так нет ли мессенджера, который позволил бы пользователям общаться через API, так же как мы это делаем в их родном приложении?
Протокол Matrix — это открытый протокол для обмена сообщениями (хотя он также может поддерживать другие сценарии использования). Существует множество клиентов для него, которые вы можете найти на сайте. Протокол работает, просто отправляя контент в формате JSON на различные конечные точки API, так что вы даже можете отправлять сообщения, используя простой метод, такой как curl. Для него также существуют библиотеки для ботов (например, эта).
Ответ или решение
Вопрос о наличии API для мессенджеров, позволяющих пользователям свободно отправлять сообщения любому контакту, действительно актуален. Как вы уже заметили, такие мессенджеры, как WhatsApp, требуют, чтобы сообщения были предварительно одобрены, особенно в случае использования API WhatsApp Business, который в основном предназначен для автоматизации взаимодействий с клиентами и отправки шаблонных сообщений.
К сожалению, большинство популярных мессенджеров, таких как WhatsApp, Telegram и другие, имеют свои ограничения. В частности:
-
WhatsApp Business API – предназначен в основном для бизнеса, и отправка личных сообщений не предусмотрена. Все сообщения должны соответствовать строгим критериям и шаблонам.
-
Telegram Bot API – позволяет создавать ботов, но напрямую взаимодействовать с пользователями через API для отправки сообщений от имени отдельного пользователя невозможно. Боты могут отправлять сообщения только тем пользователям, которые начали с ними общение.
Однако существуют альтернативы, которые могут удовлетворить ваши потребности:
-
Matrix Protocol – это открытый протокол для обмена сообщениями, который действительно позволяет отправлять сообщения любому пользователю, не требуя предварительного одобрения. Вы можете использовать стандартный HTTP API для отправки сообщений, и с помощью таких библиотек, как simplematrixbotlib, можно довольно просто интегрировать функциональность в ваш проект. Это решение подходит для создания минималистичного устройства, как вы и планировали.
-
XMPP (Extensible Messaging and Presence Protocol) – еще один открытый стандарт для обмена сообщениями, который позволяет пользователям отправлять сообщения друг другу без ограничений, обеспечивая высокий уровень гибкости. Некоторые серверы XMPP поддерживают различные клиенты и могут быть использованы для реализации вашей идеи.
Таким образом, если ваша цель состоит в том, чтобы создать устройство, способное отправлять сообщения любому пользователю, я рекомендую обратить внимание на протоколы, такие как Matrix или XMPP. Они обеспечивают большую свободу действий по сравнению с традиционными мессенджерами и могут быть интегрированы в ваши проекты достаточно легко.