Google App Engine (GAE) - це хмарна система типу "платформа як послуга" (PaaS), яка дозволяє зареєстрованим розробникам виконувати свої додатки, написані на Python, Java або в інфраструктурі Go on Google. У цій статті показано, як зареєструвати додаток для Facebook, розробити його на Java і безкоштовно встановити на платформі GAE на благо всіх користувачів, зареєстрованих в Facebook. (Відзначимо, що Google накладає обмеження на щоденне використання ресурсів, споживаних додатком, встановленим в GAE).
Просте додаток, яке ми створимо, становить список всіх друзів користувача з зазначенням їх ідентифікаторів і фотографіями з профілю - як на сторінці друзів профілю користувача Facebook старого зразка. Щоб розробити додаток, потрібні:
Вихідний код програми міститься в завантаженнях для цієї статті.
Реєстрація додатки
Перший крок полягає в тому, щоб зареєструвати свій додаток на Facebook і в GAE. Додаток краще створювати на обох платформах одночасно, щоб інформація, яку ви вводите, збігалася.
Реєстрація додатки на Facebook
Натисніть кнопку Create New App у верхньому правому кутку сторінки Apps, щоб відкрити діалогове вікно Create New App, показане на малюнку 1.
Малюнок 1. Діалогове вікно Create New App на Facebook
Малюнок 2. Діалогове вікно налаштування основних параметрів програми для Facebook
Зверніть увагу на ключі App ID і App Secret у верхній частині екрану (на малюнку 2 вони приховані). Facebook використовує ці ключі для ідентифікації додатка. Тримайте їх у секреті і не дозволяйте іншим розробникам використовувати їх, щоб ними не скористалися зловмисно без вашого відома.
Введіть в поле App Domains домен додатки. Це повинен бути домен GAE, в якому ви зареєструєте додаток на сайті для розробників GAE, так що він повинен закінчуватися на .appspot.com. Наприклад, на малюнку 2 я ввів значення myoldfacebookfriends.appspot.com. Цей домен уже недоступний, тому вам доведеться використовувати інший. Він повинен відповідати ідентифікатору програми, який ви використовуєте при реєстрації додатки в GAE.
Реєстрація додатки в GAE
Коли додаток зареєстровано в Facebook, його потрібно зареєструвати в GAE.
Малюнок 3. Діалогове вікно GAE Create an Application
Натисніть кнопку Create Application. щоб завершити процес реєстрації в GAE.
Розробка програми
В Eclipse створіть новий проект GAE, вибравши File> New> Web Application Project або натиснувши кнопку New Web Application Project в меню Google Services and Deployment Tools. Введіть ім'я проекту і ім'я пакета. Зніміть прапорець Use Google Web Toolkit. Завантажте JAR-файл RestFB (див. Розділ Ресурси) і додайте його в папку WEB-INF / lib проекту.
Додайте в файл проекту web.xml визначення сервлету для додатка. Моє визначення приведено в лістингу 1.
Лістинг 1. Визначення сервлету
Відмітимо, що
Підписаний запит до Facebook
У лістингу 2 показаний вихідний код Java-об'єкта підписаного запиту. Для наочності я опустив все методи get і set; вони є в вихідному коді завантаження (див. розділ Завантаження).
Лістинг 2. Об'єкт підписаного запиту
Лістинг 3. Допоміжний метод для кодування і декодування інформаційного наповнення запиту
створення сервлету
Тепер можна приступати до написання коду програми, який буде запускатися в сервлет. Створіть новий клас з тієї ж підписом, що і у визначення
Лістинг 4. Витяг маркера OAuth
API Graph Facebook
Щоб отримати список друзів користувача, натисніть на лінк friends. Зверніть увагу, що значення URL в браузері має вигляд: id користувача / friends. Параметр підключення при виконанні функції зазвичай має те ж значення, що і в Graph Explorer. Але оскільки додаток використовує дані користувача, який увійшов в систему, ID користувача можна замінити на me. що дає значення me / friends. Виклик повертає необроблений тип Connection. а так як це клас типу User. його необхідно додати в якості параметра. Остаточний виклик має вигляд:
Результат виклику методу fetchConnection () міститься в списку об'єктів List класу Connection. Клас Connection реалізує інтерфейс Iterable. так що кожен об'єкт List зі списку можна отримати в за допомогою розширеного циклу for:
Перебравши список об'єктів User. як описано вище, складемо новий рядок цієї таблиці з використанням змінних екземпляра кожного об'єкта User:
Нарешті, для завершення сервлету закриємо тег