Інтеграція Unity з Facebook

Нарешті настав цей день! Сьогодні у нас стаття з кодом. Вона стала результатом двотижневої боротьби з Facebook SDK та Facebook API. Сподіваюся, що інформація, яку я надам тут, буде вам корисною. Згідно з моїм досвідом, немає жодної твердої гарантії, що все залишиться незмінним після наступного оновлення Facebook SDK, тому слідкуйте за оновленнями, поки це ще актуально.

План:

  1. Інтеграція Facebook SDK (читаємо зараз)
  2. Авторизація та обмін новинами

Відмова від відповідальності. Як і решта моїх статей, ця може містити деякі не оптимальні рішення, тому якщо ви хочете вказати на кращі варіанти, обов'язково зробіть це в коментарях нижче — я буду радий почути від інших розробників Unity.

Отже, ура Facebook!

Найпопулярніша соціальна мережа у світі навряд чи потребує представлення чи переліку переваг залучення гравців і заохочення їх ділитися своїми досягненнями в іграх з друзями у Facebook. В цілому, існує два можливих способи інтеграції Unity з Facebook:

  1. Використання Facebook Graph API (низькорівневий API на основі HTTP-запитів)
  2. Використання Facebook SDK для Unity (набір інструментів, що надає специфічні можливості для платформи)

У першому випадку ви зможете спілкуватися з сервером Facebook на нижчому рівні. Це корисно, коли ви працюєте з веб-застосунками або веб-сайтами, але спілкуючись з віддаленим сервером через REST-архітектуру та аналізуючи його запити, ви зможете досягти більшого контролю над комунікацією з Facebook. Ваш додаток також буде трохи легшим (всього кілька класів у порівнянні з повною бібліотекою в SDK).

У другому випадку використовується буферна бібліотека. Вона містить найпопулярніші методи та сценарії, що використовуються при роботі з Facebook.

Ось приклад авторизації через SDK:

FB.LogInWithReadPermissions (
    new List<string>(){"public_profile", "email", "user_friends"},
    AuthCallback
);</string>

Вам потрібно лише вказати дозволи та зворотний виклик, визначений раніше, який дозволить вам отримати та обробити відповідь після повернення логіки в ваш додаток. До речі, працюючи з SDK, сама бібліотека відповідає за пошук доступного додатку Facebook, і якщо вона не знайде жодного, вона перенаправить вас на сторінку, де ви зможете виконати всі необхідні дії. Крім того, є гарний метод FB.Api(), який дозволяє викликати всі інші необхідні методи в GraphApi через SDK.

Зверніть увагу: для успішної інтеграції Unity з Facebook, перевірте офіційний веб-сайт (оскільки команда Цукерберга просто обожнює впроваджувати невеликі зміни весь час). Подивіться тут спочатку:

  1. Початок роботи
  2. Початок роботи з Android
  3. Початок роботи з iOS

Тепер, коли ми знаємо, як інтегрувати Unity з Facebook, пропоную вам інтегрувати цю соціальну мережу у ваш проект. Для цього натисніть це посилання, завантажте пакет та імпортуйте існуючий проект, двічі клікнувши на нього.

Вікно імпорту пакету

Коли ми закінчимо, з'явиться новий пункт меню з назвою Facebook. Відкрийте Facebook/Редагувати налаштування:

Вікно редагування налаштувань Facebook

Тепер ми можемо налаштувати наш додаток в Інспекторі:

Вікно інспектора

Як ви можете бачити, нам потрібно ввести Назву та App Id. Тому зараз час створити його у Facebook, використовуючи це посилання.

Створення нового app id

Після вказівки назви нашої гри (для цілей цього навчального посібника я припустив, що ми створюємо гру), нас буде переадресовано на її сторінку.

Підказка. Варто зазначити, що Facebook не дозволяє включати слово "face" у назву додатків. Чому "face", а не "facebook"? Я не знаю. Але врахуйте це, обираючи назву для вашого додатку.

Реалізація SDK

Після копіювання AppID у відповідне поле редактора та вказівки назви вашого додатку ви можете спробувати протестувати зразки, надані з SDK, просто перетягуючи всі доступні сцени:

Перетягування сцен

Після натискання Play (поточна сцена повинна бути Головне меню) ми побачимо:

Головне меню

Тут ми можемо спробувати всі можливості SDK.

Android

Зверніть увагу, що нам потрібно налаштувати деякі додаткові параметри для мобільних платформ. Давайте подивимося, як це працює з Android OS.

Щоб створити збірку для Android, просто змініть цільову платформу. Ви можете зробити це в Файл/Налаштування збірки…/Android/Налаштування гравця…

Створення збірки для Android

Натисніть Налаштування гравця, щоб редагувати налаштування збірки для вибраної платформи. Тут нам потрібно вказати Bundle Identifier (ви можете використовувати будь-яку назву, яку хочете) та мінімальний рівень API (Facebook SDK вимагає 15).

Давайте повернемося до Facebook/Редагувати налаштування — тут ми бачимо, що всі наші зміни були збережені.

Збережені налаштування Facebook

Тепер нам потрібно повернутися до сторінки налаштувань гри у Facebook і ввести назву пакету, назву класу та ім'я для налагодження. Для цього відкрийте вкладку Налаштування і додайте платформу (якщо вона ще не доступна), а також скопіюйте дані з редактора в відповідні поля, які ви бачите на зображенні нижче.

Сторінка налаштувань застосунку у Facebook

Панель з усіма необхідними опціями (такими як номер пакету, назва класу та ключові хеші) з'являється після того, як ми виберемо правильну платформу (в нашому випадку це Android):

Панель з назвою пакету Google Play та ключовими хешами

Це все, що вам потрібно знати про інтеграцію Facebook в Unity. Удачі з вашими збірками для Facebook!

“Прощавайте і дякуємо за всю рибу”

Частина 2. Інтеграція Unity у Facebook: авторизація та обмін новинами

Потрібна розробка MVP, iOS та Android застосунків або прототипування? Ознайомтеся з нашим портфоліо та замовте сьогодні!