sxygs / messenger-sdk
PHP SDK for AIO Minimum Messenger
v1.0.0
2026-05-06 13:21 UTC
Requires
- php: >=8.1
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- phpunit/phpunit: ^10.0
This package is not auto-updated.
Last update: 2026-05-06 07:28:43 UTC
README
Официальный PHP SDK для интеграции с асинхронным мессенджером AIO. Позволяет вашему бэкенду бесшовно управлять пользователями, чатами и сообщениями в изолированном окружении.
Установка
Пока пакет не опубликован в Packagist, вы можете подключить его через VCS в вашем composer.json:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/your-username/messenger-sdk"
}
],
"require": {
"sxygs/messenger-sdk": "dev-master"
}
Быстрый старт
use Sxygs\MessengerSdk\MessengerClient;
$client = new MessengerClient(
baseUrl: 'https://msg.your-domain.com',
tenantKey: 'pk_your_tenant_key',
tenantSecret: 'sk_your_tenant_secret'
);
// 1. Обмен токена для пользователя (Token Exchange)
// Используется для авторизации фронтенда в WebSocket
$token = $client->auth()->tokenFor(
externalUserId: 'user_123',
username: 'alice',
name: 'Alice Johnson'
);
// 2. Отправка системного сообщения от имени бэкенда
$client->messages()->sendSystem(
chatId: 456,
text: 'Ваш проект был успешно создан!'
);
Доступные ресурсы и методы
🔐 Auth
tokenFor(string $externalUserId, ?string $username, ?string $name)— Обменивает API-ключи на JWT токен пользователя.
👤 Users
sync(string $externalId, string $username, ?string $name)— Синхронизирует данные пользователя из вашей системы в мессенджер.list(string $userToken)— Получает список всех пользователей текущего тенанта.
💬 Chats
list(string $userToken)— Получает список чатов, в которых состоит пользователь.messages(string $userToken, int $chatId, int $limit = 50, ?int $beforeId = null)— Получает историю сообщений.createDialog(string $userToken, string $targetUsername)— Создает или возвращает существующий диалог 1-на-1.createGroup(string $userToken, string $title, array $members)— Создает групповой чат.
✉️ Messages
sendAsUser(string $externalUserId, int $chatId, string $text)— Отправляет сообщение от имени конкретного пользователя (S2S).sendSystem(int $chatId, string $text)— Отправляет системное (сервисное) сообщение в чат.
🏢 Organizations
create(string $userToken, string $slug, string $name)— Создает организацию внутри тенанта.get(string $userToken, string $slug)— Получает инфо об организации.invite(string $userToken, string $slug, string $username)— Приглашает пользователя в организацию.
Обработка ошибок
Все методы могут выбрасывать Sxygs\MessengerSdk\Exceptions\ApiException при ошибках сети или некорректных ответах API.
try {
$client->users()->sync(...);
} catch (\Sxygs\MessengerSdk\Exceptions\ApiException $e) {
echo "Ошибка API ({$e->getCode()}): {$e->getMessage()}";
}