sxygs/messenger-sdk

PHP SDK for AIO Minimum Messenger

Maintainers

Package info

gitlab.com/sxygs1/messenger-sdk

Issues

pkg:composer/sxygs/messenger-sdk

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

v1.0.0 2026-05-06 13:21 UTC

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()}";
}