Разработка авторизации через Facebook Login
Facebook Login в мобильных приложениях — рабочий метод, но с репутацией. Пользователей становится меньше из-за усталости от Meta-экосистемы, iOS 14+ App Tracking Transparency сократил объём данных, которые Meta получает о пользователях. Тем не менее, для приложений с аудиторией 25-45 лет и глобальным охватом Facebook Login всё ещё показывает хорошую конверсию.
Техническая интеграция
Meta SDK: pod 'FacebookLogin' (iOS) / implementation 'com.facebook.android:facebook-login:latest' (Android). SDK весомый — добавляет ~4-8 MB к бинарнику. Если бинарник критичен — есть альтернатива: OAuth2 PKCE flow через браузер без SDK Meta, но тогда теряем нативный опыт.
На iOS: добавить в Info.plist FacebookAppID, FacebookDisplayName, и URL Scheme fb{app_id}. AppDelegate или SceneDelegate должен передавать application(_:open:options:) в ApplicationDelegate.shared.
На Android: meta-data в AndroidManifest.xml, настройка queries для Intent к приложению Facebook. С Android 11+ без queries элемента Facebook app не обнаруживается.
Разрешения и Graph API
При логине запрашиваем только нужные permissions. Минимум: ["public_profile", "email"]. public_profile даёт имя и аватар. email — адрес, но Facebook не гарантирует его верификацию: пользователь мог указать невалидный email. email может быть null если пользователь скрыл его в настройках Facebook.
После получения accessToken — запрос к Graph API для получения данных:
GET graph.facebook.com/me?fields=id,name,email,picture.type(large)&access_token=TOKEN
id в Graph API — стабильный идентификатор пользователя для вашего приложения (App-Scoped ID). Разные приложения видят разные id одного пользователя — это намеренная изоляция Meta.
Backend верифицирует accessToken через GET graph.facebook.com/debug_token?input_token=TOKEN&access_token=APP_TOKEN. Проверяет что токен выпущен для вашего app_id и не истёк.
Типичная грабля: на iOS с Facebook SDK, если приложение Facebook установлено на устройстве — вход идёт через Facebook app (fast login), если нет — через Safari. Поведение разное, нужно тестировать оба сценария.
Сроки: 5-8 рабочих дней. Включает iOS + Android интеграцию, серверную верификацию токена через Graph API, обработку отсутствующего email, тестирование с/без приложения Facebook на устройстве.







