Как получить API-ключи площадок
Средний Обновлено 9 авг. 2026 г.
Содержание
- Facebook и Instagram (Meta)
- Что должно быть готово заранее
- 1. Свяжите Instagram с Facebook Page
- 2. Создайте Meta-приложение
- 3. Добавьте разрешения Facebook
- 4. Добавьте Instagram в то же приложение
- 5. Сгенерируйте токен и подключитесь
- Если что-то не так
- YouTube
- 1. Проект и API
- 2. Экран согласия
- 3. OAuth-клиент
- 4. Подключение
- Три подводных камня Google
- Storage (Cloudflare R2)
- Buffer (TikTok и X)
- AI-подписи (Anthropic)
- Коротко о безопасности
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 в браузере — это ещё не связь: страница сама должна знать аккаунт.
- В Facebook переключитесь с личного профиля на нужную Page.
- Откройте Settings & privacy → Settings → Linked accounts (или пункт Instagram).
- Connect account, авторизуйтесь в нужном Instagram-аккаунте, подтвердите связывание.
Если OAuth позже покажет «You don’t have any Instagram accounts» — аккаунт не Professional, или связь была сделана не от лица Page.
2. Создайте Meta-приложение
- Meta for Developers → My Apps → Create App.
- Любое понятное имя; проверьте контактный email; Next.
- На шаге Use cases выберите Content management → Manage everything on your Page → Next.
- На шаге Business можно выбрать «I don’t want to connect a business portfolio yet».
- Завершите создание. 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 в то же приложение
- Добавьте use case Manage messaging & content on Instagram.
- В разделе Instagram API выберите API setup with Facebook login — не «with Instagram login»: это другой flow с другими токенами.
- В блоке 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. Сгенерируйте токен и подключитесь
- Сначала внесите App ID и App secret в панель: Settings → This install → Facebook & Instagram, сохраните.
- Откройте Tools → Graph API Explorer,
выберите своё приложение, хост оставьте
graph.facebook.com(переключение на.instagram.com— это другой API, а не «инстаграмный токен»). - Добавьте разрешения из обеих таблиц и нажмите Generate Access Token. В окне OAuth дайте доступ нужной Page и её Instagram-аккаунту — достаточно выбрать только их.
- Скопируйте токен в Settings → Connections → Facebook & Instagram и нажмите Connect.
Панель обменяет этот короткоживущий токен на сервере на 60-дневный пользовательский и постоянный токен Page; короткоживущий нигде не сохраняется. На вкладке Connections видны сроки действия обоих токенов — и там же панель перечислит разрешения, которых токену не хватило.
Если что-то не так
| Симптом | Что проверить |
|---|---|
| You don’t have any Instagram accounts | Instagram точно Professional? Связан именно с Page, а не только через Accounts Center? OAuth выполняет пользователь, управляющий Page? |
| Invalid Scopes на разрешении | Сначала оно включается в Use cases → Permissions and features, и только потом запрашивается в Explorer. |
| Instagram виден в браузере, но не в OAuth | Сессия браузера — не связь с Page. Вернитесь к шагу 1. |
YouTube
Подключить канал можно будет двумя способами — результат один: видео ложатся на ваш канал.
- Authorize with Google — одна кнопка в панели, настраивать нечего. Ждёт проверки Google нашего общего приложения; кнопка в Settings → Connections оживёт, как только проверка пройдена.
- Свой OAuth-клиент — путь ниже. ~20 минут в Google Cloud, и ваша установка говорит с YouTube напрямую, полностью независимо от Phoenix. Работает уже сегодня и останется поддержанным навсегда.
Загрузки идут напрямую на ваш канал через ваш собственный (бесплатный) OAuth-клиент Google Cloud. Цепочка: Google-аккаунт → Cloud-проект → OAuth-клиент → refresh token → YouTube Data API.
1. Проект и API
- Откройте Google Cloud Console, создайте проект (имя — любое).
- 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-клиент
- APIs & Services → Credentials → Create credentials → OAuth client ID.
- Тип приложения: Web application.
- В Authorized redirect URIs добавьте — дословно — redirect URI, который панель показывает в
Settings → Connections → YouTube; для локальной установки это
http://127.0.0.1:8787/api/youtube/callback. - 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 публикуют и без него.
- В дашборде Cloudflare откройте R2 и создайте бакет —
панель ожидает имя
phoenix-clips-media, если не менять поле Bucket name. - Дайте ему публичный домен: бакет → Settings → Public access → Custom domains (для
начала подойдёт и поддомен
r2.dev). Это поле Public URL of the bucket — файлы по нему должны открываться без логина. - Создайте ключи: R2 → Manage API tokens → Create API token, право Object Read & Write, область — только этот бакет. Результат — Access key id и Secret access key; секрет показывается один раз.
- Account id виден в боковой панели R2; S3 endpoint —
https://<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 они не нужны.
- Подключите TikTok и X как каналы внутри самого Buffer.
- Создайте access token в настройках разработчика/API вашего аккаунта Buffer и внесите его вместе с organization id в Settings → This install → Buffer.
- Вкладка Connections после этого сама сопоставит площадки каналам Buffer — карта переопределений нужна только редким аккаунтам с дублями.
AI-подписи (Anthropic)
Опционально. Кнопка Generate пишет заголовки, подписи и хэштеги с помощью Claude по вашему ключу; счёт выставляет Anthropic по факту использования — подписи к клипу стоят доли цента.
- Зарегистрируйтесь на console.anthropic.com, откройте API keys, создайте ключ.
- Вставьте его в Settings → This install → AI captions. Тон, язык, базовые хэштеги и название игры — соседние поля там же.
Без ключа кнопка Generate честно скажет, что не настроена; всему остальному он не нужен.
Коротко о безопасности
- Секретам не место в git, на скриншотах, в логах и тикетах поддержки.
- Панель маскирует сохранённые секреты — показывает Set, но никогда значение. Что всё-таки утекло — отзывается и перевыпускается в той консоли, где было создано; панель примет замену в то же поле.
- Выдавайте только scopes, перечисленные на этой странице. Ничему здесь не нужны сообщения, модерация комментариев или рекламные разрешения.