Розробка мобільного Odnoklassniki-чат-бота
OK API повертає 403 Forbidden при першому ж запиті, якщо ви не розумієте тонкість з форматом підпису. Більшість проектів спотикаються ще на етапі автентифікації — до реальної логіки бота справа не доходить тижнями.
Як влаштована інтеграція з OK API
Odnoklassniki використовують власну схему підпису запитів. Кожен виклик до api.ok.ru/fb.do потребує обчислення MD5-хешу від конкатенації відсортованих параметрів + сесійного ключа + секрету програми. Пропустите сортування — підпис невірний, відповідь invalid_session.
Мобільний додаток спілкується з ботом через проміжний сервер: клієнт відправляє повідомлення → сервер отримує webhook від OK → обробляє логіку → відповідає через messages.send. Ніколи не зберігайте application_secret_key на пристрої.
Webhook-подія від OK приходить у форматі:
{
"type": "NEW_MESSAGE",
"senderId": "123456789",
"groupId": "70000000000001",
"object": {
"body": "Привіт",
"mid": "MESSAGE_ID"
}
}
На стороні мобільного додатку це звичайний REST-клієнт: Retrofit на Android або Alamofire на iOS, який опитує ваш сервер або підключається через WebSocket для отримання відповідей в реальному часі.
Що реально потрібно реалізувати
Авторизація через OK OAuth. Якщо бот діє від імені користувача (не групи), потрібен access_token з правами MESSAGES. OK mobile SDK для Android (one-sdk-android) спрощує OAuth-флоу, але для кастомного UX доведеться використовувати WebView з перехопленням redirect URI.
Розсилки за підписниками групи. notifications.sendSimple працює тільки якщо користувач вступив у взаємодію з групою. Спроба слати без попереднього контакту → user_not_invited_to_group. Це обмеження платформи, обійти його неможливо.
Автоповідомлення в групі. Бот моніторить GROUP_MESSAGE_NEW через Long Polling або Callback API. Callback API надійніше — Long Polling вимагає утримувати постійне з'єднання, що на мобільному сервері неоптимально.
Процес розробки
Реєстрація програми в OK Dev Center, налаштування прав групи та webhook-endpoint.
Серверна частина: обробка підпису запитів OK, маршрутизація вхідних подій, зберігання історії діалогів.
Мобільний клієнт: UI чату (RecyclerView + DiffUtil на Android, UICollectionView з compositional layout на iOS), інтеграція з вашим API.
Тестування на реальних аккаунтах OK — емулятор тут не допоможе, потрібні живі профілі.
Орієнтири за часом
Базовий бот з автоповідомленнями в групі та мобільним інтерфейсом — 3–5 днів. Якщо потрібні розсилки, аналітика діалогів, інтеграція з CRM — 2–3 тижні.







