Перше звернення до api.ok.ru/fb.do повертає 403 Forbidden — класична пастка для новачків. Причина криється у форматі підпису: кожен параметр має бути відсортований лексикографічно, потім сконкатенований з сесійним ключем та секретом додатку, після чого обчислюється MD5. Один пропущений сортування — і підпис невірний, відповідь invalid_session. Ми за 5 років розробили понад 20 чат-ботів для Однокласників з OK API та знаємо всі тонкощі. Середній час відповіді такого бота — 200 мс, а вартість одного звернення в 5 разів нижча, ніж у живого оператора. Наш досвід гарантує, що ви не витратите тижні на налагодження аутентифікації. Зв'яжіться з нами — оцінимо ваш проєкт безкоштовно.
Для обчислення підпису необхідно зібрати всі параметри запиту (крім sig та access_token), відсортувати їх лексикографічно, сконкатенувати в рядок виду param1=value1param2=value2..., додати сесійний ключ та секрет додатку, потім обчислити MD5. Приклад на Python:
import hashlib params = sorted(params.items()) raw = ''.join(f'{k}={v}' for k, v in params) + session_key + secret sig = hashlib.md5(raw.encode()).hexdigest() OK API Documentation: Signature generation algorithm Webhook-подія від OK приходить у форматі:
{ "type": "NEW_MESSAGE", "senderId": "123456789", "groupId": "70000000000001", "object": { "body": "Привіт", "mid": "MESSAGE_ID" } } На стороні мобільного додатку це звичайний REST-клієнт: Retrofit на Android або Alamofire на iOS, який опитує ваш сервер або підключається через WebSocket для отримання відповідей у реальному часі.
Архітектура мобільного чат-бота для Однокласників
Однокласники використовують власну схему підпису запитів. Кожен виклик до api.ok.ru/fb.do вимагає обчислення MD5-хешу від конкатенації відсортованих параметрів + сесійного ключа + секрету додатку. Пропустиш сортування — підпис невірний, відповідь invalid_session. Мобільний додаток працює з ботом через проміжний сервер: клієнт відправляє повідомлення → сервер отримує webhook від OK → обробляє логіку → відповідає через messages.send. Зберігати application_secret_key на пристрої не можна.
Що реально потрібно реалізувати
Авторизація через OK OAuth. Якщо бот діє від імені користувача (не групи), потрібен access_token з правами MESSAGES. Мобільний SDK OK для Android (one-sdk-android) спрощує OAuth-флоу, але для кастомного UX доведеться використовувати WebView з перехопленням redirect URI.
Розсилки OK по підписникам групи. notifications.sendSimple працює лише якщо користувач вступив у взаємодію з групою. Спроба слати без попереднього контакту → user_not_invited_to_group. Це обмеження платформи, обходити не можна.
Автовідповіді в Однокласниках. Бот моніторить GROUP_MESSAGE_NEW через Long Polling або Callback API. Callback API надійніше — Long Polling вимагає тримати постійне з'єднання, що на мобільному сервері неоптимально.
Long Polling vs Callback API: що обрати?
| Критерій | Long Polling | Callback API |
|---|---|---|
| Постійне з'єднання | Так | Ні |
| Затримка доставки | Середня | Низька |
| Навантаження на сервер | Висока | Низька |
| Надійність | Середня | Висока |
| Рекомендація | Для прототипів | Для продакшену |
Чому виникають помилки при розробці чат-бота?
Типові помилки та їх рішення
| Помилка | Причина | Рішення |
|---|---|---|
| Невірне сортування параметрів | Забувають нативне сортування ключів | Завжди сортуйте параметри лексикографічно |
| Зберігання секрету на клієнті | Спрощення налагодження | Тримайте application_secret_key на сервері |
| Ігнорування обмежень OK | Незнання роботи notifications.sendSimple |
Попередньо перевіряйте взаємодію з групою |
| Відсутність обробки помилок | Не перевіряють коди відповідей | Обробляйте всі коди помилок з документації OK API |
Професійна розробка чат-бота: результати та гарантії
Досвід 5 років і 20+ проєктів дозволяє нам уникати описаних помилок. Всі боти проходять навантажувальне тестування на 20 000 повідомлень на день. Ми надаємо архітектурну документацію, вихідний код, інструкцію з розгортання та 3 місяці безкоштовної підтримки. Ваш бюджет на розробку скоротиться на 30% за рахунок використання готових модулів підпису та OAuth. Отримайте консультацію — оцінимо ваш проєкт.
Що входить в роботу над чат-ботом?
- Аналітика сценаріїв та прототипування інтерфейсу.
- Реєстрація додатку в OK Dev Center, налаштування прав групи та webhook-endpoint.
- Розробка серверної частини на Python (FastAPI) або Go з підтримкою підпису, маршрутизацією подій та зберіганням діалогів у базі даних.
- Мобільний клієнт: UI чату (RecyclerView + DiffUtil для Android, UICollectionView з compositional layout для iOS), інтеграція з вашим API, push-сповіщення через FCM/APNs.
- Інтеграція OK API з CRM (через REST API або webhook), налаштування сповіщень про нові діалоги.
- Навантажувальне тестування (20 000 повідомлень на день) та оптимізація.
- Повна документація: архітектура, API контракти, інструкція з розгортання.
- 3 місяці безкоштовної підтримки та доопрацювань.
Процес роботи
- Аналітика — обговорюємо сценарії бота, цільову аудиторію, інтеграції.
- Реєстрація додатку — в OK Dev Center, налаштування прав групи та webhook-endpoint.
- Серверна частина — розробка обробника підпису, маршрутизація подій, зберігання діалогів у базі даних.
- Мобільний клієнт — UI чату (RecyclerView + DiffUtil для Android, UICollectionView з compositional layout для iOS), інтеграція з вашим API.
- Тестування — на реальних акаунтах OK, у тому числі через TestFlight та Firebase App Distribution.
- Деплой — розгортаємо сервер на вашому хмарі, налаштовуємо CI/CD.
Орієнтири за термінами
Базовий бот з автовідповідями в групі та мобільним інтерфейсом — 3–5 днів. Якщо потрібні розсилки, аналітика діалогів, інтеграція з CRM — 2–3 тижні. Точні терміни розраховуємо індивідуально.
Зв'яжіться з нами — отримайте попередню оцінку вартості та термінів. Замовте консультацію — ми проаналізуємо ваш сценарій та запропонуємо оптимальне рішення.







