Как получить API-ключи площадок

Средний Обновлено 9 авг. 2026 г.

Содержание

Phoenix Clips публикует из ваших аккаунтов через ваши собственные API-ключи — ничего не проходит через серверы Phoenix, и Phoenix никогда не видит ваши токены. Цена этого — разовая настройка в трёх консолях разработчика. Эта страница — маршрут по всем трём.

Куда вводить значения — зависит от того, где работает ваш экземпляр:

  • Локальная установка: вкладка Settings → This install в панели — каждый раздел ниже называет конкретные поля. Секреты попадают в хранилище учётных данных Windows и шифруются под вашей учётной записью.
  • Свой облачный экземпляр: те же имена — переменные окружения на вашем хостинге (FB_APP_ID, YT_CLIENT_ID, …).

Обращайтесь с каждым токеном как с паролем. Access token, refresh token, app secret и client secret дают полный доступ к вашим аккаунтам. Попал на скриншот, в публичный чат, в git или в тикет поддержки — считайте раскрытым и выпустите новый.

Facebook и Instagram (Meta)

Оба подключения закрывает одно (бесплатное) Meta-приложение. Цепочка такая: ваш Facebook-пользователь → Facebook Page → привязанный к ней Instagram Professional Account → ваше Meta-приложение → токены → публикация и статистика.

Что должно быть готово заранее

  • Вы управляете Facebook Page — именно страницей, а не только личным профилем.
  • Instagram-аккаунт переключён в Professional (Business или Creator).
  • Этот Instagram связан с Facebook Page.
  • В Meta for Developers вы входите тем Facebook-пользователем, который управляет этой Page.

1. Свяжите Instagram с Facebook Page

Вход на instagram.com в браузере — это ещё не связь: страница сама должна знать аккаунт.

  1. В Facebook переключитесь с личного профиля на нужную Page.
  2. Откройте Settings & privacy → Settings → Linked accounts (или пункт Instagram).
  3. Connect account, авторизуйтесь в нужном Instagram-аккаунте, подтвердите связывание.

Если OAuth позже покажет «You don’t have any Instagram accounts» — аккаунт не Professional, или связь была сделана не от лица Page.

2. Создайте Meta-приложение

  1. Meta for DevelopersMy Apps → Create App.
  2. Любое понятное имя; проверьте контактный email; Next.
  3. На шаге Use cases выберите Content management → Manage everything on your PageNext.
  4. На шаге Business можно выбрать «I don’t want to connect a business portfolio yet».
  5. Завершите создание. App ID и App secret лежат в App settings → Basic — это первые два поля секции Facebook & Instagram в панели.

3. Добавьте разрешения Facebook

Use cases → Manage everything on your Page → Customize → Permissions and features. Сервису нужны ровно эти:

РазрешениеЗачем оно Phoenix Clips
pages_show_listнайти Page и выпустить её токен
pages_read_engagementчитать собственные посты Page
pages_manage_postsопубликовать клип
read_insightsпросмотры и охват
pages_manage_engagementстатистика Reels и первый комментарий от имени Page

Если текущий интерфейс Meta настаивает на business_management — добавьте; остальное, что он просто предлагает, не нужно.

4. Добавьте Instagram в то же приложение

  1. Добавьте use case Manage messaging & content on Instagram.
  2. В разделе Instagram API выберите API setup with Facebook loginне «with Instagram login»: это другой flow с другими токенами.
  3. В блоке Manage content on Instagram → Go to permissions and features включите:
РазрешениеЗачем
instagram_basicвидеть профессиональный аккаунт
instagram_content_publishingпубликовать Reels (в старой документации — instagram_content_publish; берите то, что показывает ваш дашборд)
instagram_manage_insightsпросмотры и охват
instagram_manage_commentsавтоматический первый комментарий
instagram_manage_contentsудалить Reel, когда клип отзывают обратно — без него опубликованный Reel отсюда уже не убрать, а клип не переопубликовать

5. Сгенерируйте токен и подключитесь

  1. Сначала внесите App ID и App secret в панель: Settings → This install → Facebook & Instagram, сохраните.
  2. Откройте Tools → Graph API Explorer, выберите своё приложение, хост оставьте graph.facebook.com (переключение на .instagram.com — это другой API, а не «инстаграмный токен»).
  3. Добавьте разрешения из обеих таблиц и нажмите Generate Access Token. В окне OAuth дайте доступ нужной Page и её Instagram-аккаунту — достаточно выбрать только их.
  4. Скопируйте токен в Settings → Connections → Facebook & Instagram и нажмите Connect.

Панель обменяет этот короткоживущий токен на сервере на 60-дневный пользовательский и постоянный токен Page; короткоживущий нигде не сохраняется. На вкладке Connections видны сроки действия обоих токенов — и там же панель перечислит разрешения, которых токену не хватило.

Если что-то не так

СимптомЧто проверить
You don’t have any Instagram accountsInstagram точно Professional? Связан именно с Page, а не только через Accounts Center? OAuth выполняет пользователь, управляющий Page?
Invalid Scopes на разрешенииСначала оно включается в Use cases → Permissions and features, и только потом запрашивается в Explorer.
Instagram виден в браузере, но не в OAuthСессия браузера — не связь с Page. Вернитесь к шагу 1.

YouTube

Подключить канал можно будет двумя способами — результат один: видео ложатся на ваш канал.

  1. Authorize with Google — одна кнопка в панели, настраивать нечего. Ждёт проверки Google нашего общего приложения; кнопка в Settings → Connections оживёт, как только проверка пройдена.
  2. Свой OAuth-клиент — путь ниже. ~20 минут в Google Cloud, и ваша установка говорит с YouTube напрямую, полностью независимо от Phoenix. Работает уже сегодня и останется поддержанным навсегда.

Загрузки идут напрямую на ваш канал через ваш собственный (бесплатный) OAuth-клиент Google Cloud. Цепочка: Google-аккаунт → Cloud-проект → OAuth-клиент → refresh token → YouTube Data API.

1. Проект и API

  1. Откройте Google Cloud Console, создайте проект (имя — любое).
  2. APIs & Services → Library → включите YouTube Data API v3. Больше ничего не нужно — просмотры и лайки читаются через тот же API.

2. Экран согласия

APIs & Services → OAuth consent screen:

  • App name, support email, developer email — ваши.
  • Audience: External.
  • Пока приложение в статусе Testing, добавьте свой Google-аккаунт в Test users.

Scopes здесь вручную выбирать не обязательно: панель при подключении запросит ровно три — youtube.upload, чтобы залить видео, youtube.readonly для канала и счётчиков просмотров и youtube.force-ssl, чтобы видео можно было и снять (право на загрузку удалять не разрешает).

3. OAuth-клиент

  1. APIs & Services → Credentials → Create credentials → OAuth client ID.
  2. Тип приложения: Web application.
  3. В Authorized redirect URIs добавьте — дословно — redirect URI, который панель показывает в Settings → Connections → YouTube; для локальной установки это http://127.0.0.1:8787/api/youtube/callback.
  4. Create — скопируйте Client ID и Client secret в Settings → This install → YouTube, сохраните.

4. Подключение

Settings → Connections → YouTube → Connect via Google. Войдите аккаунтом, которому принадлежит канал, и разрешите оба scope. Сервис сохраняет только refresh token.

Google предупредит, что приложение не проверено — это нормально, приложение ваше; Advanced → продолжить — правильный путь.

Три подводных камня Google

  • В режиме Testing токены живут 7 дней. Пока экран согласия в Testing, refresh token умирает еженедельно и подключение приходится повторять. Переведите приложение в In production (страница Audience → Publish app) — верификация для этого не нужна, она нужна только чтобы убрать предупреждающий экран.
  • Предупреждение «private, пока не проверено» здесь не кусается. Документация Google говорит, что непроверенные проекты загружают только в приватный просмотр, но это ограничение бьёт по приложениям, загружающим на чужие каналы. Свой проект и свой канал — ровно эта схема — загрузки выходят с той видимостью, которую вы выбрали.
  • Квоты хватает примерно на шесть загрузок в день. Одна загрузка стоит 1600 из 10 000 дневных единиц по умолчанию. Для конвейера клипов этого с запасом; массовый импорт тратится из того же бюджета.

Storage (Cloudflare R2)

Подойдёт любой S3-совместимый бакет; задокументированный путь — R2 (бесплатного тарифа на библиотеку клипов хватает). Из бакета Instagram, TikTok и X скачивают ваше видео — YouTube и Facebook публикуют и без него.

  1. В дашборде Cloudflare откройте R2 и создайте бакет — панель ожидает имя phoenix-clips-media, если не менять поле Bucket name.
  2. Дайте ему публичный домен: бакет → Settings → Public access → Custom domains (для начала подойдёт и поддомен r2.dev). Это поле Public URL of the bucket — файлы по нему должны открываться без логина.
  3. Создайте ключи: R2 → Manage API tokens → Create API token, право Object Read & Write, область — только этот бакет. Результат — Access key id и Secret access key; секрет показывается один раз.
  4. Account id виден в боковой панели R2; S3 endpointhttps://<account-id>.r2.cloudflarestorage.com.

Всего шесть значений — все на Settings → This install → Storage.

Buffer (TikTok и X)

TikTok и X публикуются через ваш собственный аккаунт Buffer: их прямые API требуют аудитов и платных тарифов, бессмысленных для инди. Phoenix работает с API Buffer; логины площадок хранит Buffer.

Бесплатного тарифа достаточно. Free-план Buffer даёт 3 подключённых канала — TikTok и X это два из них, один остаётся в запасе. Два его ограничения стоит знать, потому что панель называет их прямо, когда они срабатывают:

  • 10 запланированных постов на канал одновременно. Публикация сразу сюда не упирается — только очередь, доросшая до десяти ожидающих постов. Места освобождаются по мере выхода.
  • 3000 обращений к API в месяц. С запасом: сервис обновляет метрики по таймеру, а не опросом без остановки — именно поэтому интервал метрик и интервал опроса Buffer сделаны настройками, а не решением сервиса за вас.

Платные тарифы (от $5/мес за канал) снимают лимит на планирование и добавляют собственную аналитику Buffer. Ничему в Phoenix Clips они не нужны.

  1. Подключите TikTok и X как каналы внутри самого Buffer.
  2. Создайте access token в настройках разработчика/API вашего аккаунта Buffer и внесите его вместе с organization id в Settings → This install → Buffer.
  3. Вкладка Connections после этого сама сопоставит площадки каналам Buffer — карта переопределений нужна только редким аккаунтам с дублями.

AI-подписи (Anthropic)

Опционально. Кнопка Generate пишет заголовки, подписи и хэштеги с помощью Claude по вашему ключу; счёт выставляет Anthropic по факту использования — подписи к клипу стоят доли цента.

  1. Зарегистрируйтесь на console.anthropic.com, откройте API keys, создайте ключ.
  2. Вставьте его в Settings → This install → AI captions. Тон, язык, базовые хэштеги и название игры — соседние поля там же.

Без ключа кнопка Generate честно скажет, что не настроена; всему остальному он не нужен.

Коротко о безопасности

  • Секретам не место в git, на скриншотах, в логах и тикетах поддержки.
  • Панель маскирует сохранённые секреты — показывает Set, но никогда значение. Что всё-таки утекло — отзывается и перевыпускается в той консоли, где было создано; панель примет замену в то же поле.
  • Выдавайте только scopes, перечисленные на этой странице. Ничему здесь не нужны сообщения, модерация комментариев или рекламные разрешения.