Реалізація автоматичного постингу нових товарів у соціальні мережі

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Реалізація автоматичного постингу нових товарів у соціальні мережі
Середня
~3-5 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Реалізація автоматичного постинга нових товарів у соціальні мережі

Коли менеджер публікує товар у каталозі, система сама розсилає анонс у потрібні канали: ВКонтакте, Telegram-канал, Facebook Page, Odnoklassniki. Без ручного копіювання, без затримок, з правильним форматуванням під кожну платформу.

Архітектура

Ядро — event-driven пайплайн. Публікація товару генерує подію ProductPublished, яку підхоплюють окремі listener-и для кожної соцмережі. Кожен listener ставить завдання у чергу, воркер обробляє незалежно від інших.

ProductPublished event
    ├── VkPostListener → queue: vk-posts
    ├── TelegramPostListener → queue: telegram-posts
    ├── FacebookPostListener → queue: facebook-posts
    └── OdnoklassnikiPostListener → queue: ok-posts

Така схема гарантує, що збій у одній соцмережі не блокує публікацію в інших.

ВКонтакте

Використовується VK API v5.199. Для публікації від імені сообщества потрібен токен сообщества з правом wall. Завантаження фото — двохшагова: спочатку отримати upload URL, потім залити файл та зберегти.

// Шаг 1: отримати сервер завантаження
$uploadServer = $vk->photos->getWallUploadServer(['group_id' => $groupId]);

// Шаг 2: завантажити зображення
$uploaded = Http::attach('photo', file_get_contents($imageUrl), 'photo.jpg')
    ->post($uploadServer['upload_url']);

// Шаг 3: зберегти фото
$saved = $vk->photos->saveWallPhoto([
    'group_id' => $groupId,
    'photo'    => $uploaded['photo'],
    'server'   => $uploaded['server'],
    'hash'     => $uploaded['hash'],
]);

// Шаг 4: опублікувати пост
$vk->wall->post([
    'owner_id'    => -$groupId,
    'message'     => $caption,
    'attachments' => "photo{$saved[0]['owner_id']}_{$saved[0]['id']}",
]);

Telegram

Telegram Bot API — найпростіший у інтеграції. Метод sendPhoto або sendMediaGroup для кількох фото. Підпис підтримує HTML та MarkdownV2.

import httpx

async def post_to_telegram(bot_token: str, channel_id: str, photo_url: str, caption: str):
    async with httpx.AsyncClient() as client:
        resp = await client.post(
            f"https://api.telegram.org/bot{bot_token}/sendPhoto",
            json={
                "chat_id": channel_id,
                "photo": photo_url,
                "caption": caption,
                "parse_mode": "HTML",
            },
            timeout=15,
        )
        resp.raise_for_status()
        return resp.json()

Ліміт підпису — 1024 символи. Якщо опис довший, відправляється додатковим повідомленням через sendMessage з reply_to_message_id.

Facebook Page

Graph API v19.0, метод /{page-id}/photos. Потребує Page Access Token з правом pages_manage_posts.

POST /v19.0/{page-id}/photos
  ?url=https://cdn.example.com/img.jpg
  &message=Новий товар у каталозі...
  &published=true

Шаблони тексту

Різні платформи потребують різного форматування. Шаблони зберігаються у базі та редагуються через CMS:

Платформа Особливості
ВКонтакте До 16 тис. символів, емодзі, посилання кликабельні
Telegram HTML-теги <b>, <i>, <a>, ліміт 1024
Facebook Посилання в тексті — preview генерується автоматично

Змінні у шаблоні: {name}, {price}, {url}, {description}, {tags}.

Повторні спроби та моніторинг

Кожне завдання у черзі має 3 спроби з експоненціальною затримкою (1 хв → 5 хв → 15 хв). Після вичерпання спроб — запис у таблицю failed_social_posts з тілом помилки та сповіщення адміністратора. Метрики публікацій (успіх/провал по кожній платформі) виводяться у дашборді.

Час реалізації

Інтеграція двох платформ (VK + Telegram) — 4–6 робочих днів. Кожна додаткова платформа — 1–2 дні. Панель управління з історією постів та шаблонами — ще 2–3 дні.