Открыть сервис

Graph API

Graph API — это программный интерфейс приложения (API), предоставляемый компанией Meta (организация признана экстремистской и запрещена в РФ) для доступа к данным и функциональности социальной сети Facebook (продукт Meta, признанной экстремистской и запрещённой в РФ), а также связанных с ней платформ, включая Instagram (продукт Meta, признанной экстремистской и запрещённой в РФ), Messenger и WhatsApp (Business API). Graph API является основным способом программного взаимодействия с платформой Facebook, позволяя разработчикам читать, создавать, обновлять и удалять объекты (например, пользователей, фотографии, страницы, события) и их связи (например, друзей, лайки, подписчики).

История

Graph API был представлен компанией Facebook (организация признана экстремистской и запрещена в РФ) в апреле 2010 года на конференции разработчиков f8. Он пришёл на смену старому REST API, который был менее гибким и не поддерживал графовую модель данных. Введение Graph API было частью стратегии Facebook по упрощению разработки приложений и расширению экосистемы платформы.

В 2013 году вышла вторая версия API (v2.0), которая ввела значительные изменения в политику доступа к данным, включая обязательную авторизацию через OAuth 2.0 и ограничения на запрос данных друзей пользователя. Это было связано с усилением требований к конфиденциальности после скандалов с утечкой данных.

В 2018 году, после скандала с Cambridge Analytica, Facebook (организация признана экстремистской и запрещена в РФ) ввёл дополнительные ограничения, включая необходимость утверждения приложений для доступа к определённым разрешениям (например, user_friends, user_posts). Версия v3.0 и последующие версии продолжили ужесточение правил.

Архитектура и принципы работы

Graph API построен на графовой модели данных. Каждый объект (например, пользователь, страница, фото) представляется как узел (node) графа, а связи между ними (например, дружба, лайк, публикация) — как рёбра (edges). API использует HTTP-запросы (GET, POST, DELETE, PUT) для взаимодействия с этими узлами и рёбрами.

Основные компоненты

  • Узлы (Nodes): базовые объекты, такие как User, Page, Post, Photo, Event. Каждый узел имеет уникальный идентификатор (ID).
  • Рёбра (Edges): связи между узлами, например, /me/friends, /me/photos, /page/feed. Рёбра возвращают коллекции связанных объектов.
  • Поля (Fields): атрибуты узла, которые можно запросить (например, id, name, email). Для экономии трафика можно указать только необходимые поля.
  • Доступ (Access Token): токен авторизации, необходимый для большинства запросов. Типы токенов: пользовательский (User Access Token), страничный (Page Access Token), приложенческий (App Access Token).

Версионирование

Graph API использует версионирование в URL. Например, запрос к версии 19.0 выглядит как https://graph.facebook.com/v19.0/me`. Каждая версия поддерживается в течение двух лет. Версии нумеруются по году выпуска (например, v19.0 выпущена в 2024 году).

Классификация разрешений

Для доступа к данным через Graph API разработчик должен запросить у пользователя разрешения (permissions). Разрешения делятся на несколько категорий:

Стандартные разрешения (Default Permissions)

Доступны без дополнительного утверждения. К ним относятся:

  • public_profile — имя, аватар, возрастной диапазон, пол, локаль.
  • email — подтверждённый email-адрес.

Разрешения с утверждением (Advanced Permissions)

Требуют прохождения процедуры утверждения приложения (App Review) со стороны Meta (организация признана экстремистской и запрещена в РФ). Примеры:

  • user_friends — доступ к списку друзей.
  • user_posts — доступ к публикациям пользователя.
  • pages_manage_posts — управление публикациями на странице.
  • ads_management — управление рекламными кампаниями.

Разрешения для бизнес-аккаунтов (Business Permissions)

Используются для доступа к данным рекламных аккаунтов и бизнес-страниц. Например:

  • ads_read — чтение рекламных данных.
  • business_management — управление бизнес-аккаунтами.

Применение

Graph API широко используется в различных сферах:

Социальные приложения

Разработчики используют API для интеграции входа через Facebook (Login with Facebook), публикации контента от имени пользователя, доступа к списку друзей и другим социальным данным.

Маркетинг и реклама

API позволяет управлять рекламными кампаниями, создавать аудитории, загружать пиксели и анализировать эффективность рекламы через Facebook Ads API (часть Graph API).

Управление страницами и сообществами

Владельцы страниц Facebook (организация признана экстремистской и запрещена в РФ) и администраторы групп используют API для автоматизации публикаций, модерации комментариев, анализа вовлечённости.

Интеграция с другими платформами

Graph API используется для интеграции Facebook с CRM-системами, платформами электронной коммерции, инструментами аналитики и чат-ботами (через Messenger Platform).

Ограничения и политика

Лимиты запросов

Meta (организация признана экстремистской и запрещена в РФ) устанавливает лимиты на количество запросов в единицу времени (rate limits). Для пользовательских токенов лимит составляет 200 запросов в час на пользователя, для страничных — 200 запросов в час на страницу. Для приложенческих токенов лимит зависит от количества пользователей приложения.

Запрет на определённые данные

После скандала с Cambridge Analytica доступ к данным друзей пользователя (кроме тех, кто также использует приложение) был существенно ограничен. Запрос user_friends возвращает только друзей, которые уже установили приложение.

Необходимость утверждения

Для доступа к чувствительным данным (например, user_posts, user_photos) приложение должно пройти процесс App Review, который включает проверку цели использования данных и соблюдения политики конфиденциальности.

Примеры запросов

Получение информации о пользователе

`` GET /v19.0/me?fields=id,name,email&access_token=TOKEN ``

Ответ: ``json { "id": "123456789", "name": "Иван Иванов", "email": "ivan@example.com" } ``

Получение списка друзей

`` GET /v19.0/me/friends?access_token=TOKEN ``

Ответ: ``json { "data": [ {"id": "987654321", "name": "Петр Петров"} ], "summary": {"total_count": 1} } ``

Публикация на странице

`` POST /v19.0/PAGE_ID/feed?message=Привет, мир!&access_token=PAGE_TOKEN ``

Ответ: ``json { "id": "PAGE_ID_POST_ID" } ``

Критика

Graph API неоднократно подвергался критике за сложность и частые изменения. Разработчики отмечают, что версионирование и постоянное ужесточение правил доступа усложняют поддержку приложений. Кроме того, процесс утверждения разрешений (App Review) часто описывается как непрозрачный и длительный.

Другой аспект критики — недостаточная документация. Несмотря на наличие официальной документации, некоторые функции API описаны неполно или требуют дополнительных экспериментов для понимания.

Сравнение с другими API

Graph API отличается от REST API других социальных сетей (например, Twitter API, VK API) графовой моделью данных и более строгими ограничениями на доступ к данным. В отличие от VK API, где доступ к списку друзей практически не ограничен, в Graph API он требует специального разрешения и возвращает только друзей, использующих приложение.

Источники

  • Официальная документация Graph API (Meta for Developers)
  • История изменений Graph API (Facebook Developer Blog)
  • Статья «Facebook Graph API: A Comprehensive Guide» (Smashing Magazine)
  • Материалы конференции f8 2010, 2013, 2018 годов
  • Обсуждения на Stack Overflow по тегу facebook-graph-api

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →