Как создать приложение с facebook api
Возможность доступа к API-интерфейсам с основных платформ социальных сетей может быть использована в качестве мощного и полезного инструмента. К счастью, это нетрудно сделать, особенно с помощью Spring Boot, а точнее, модуля Spring Social .
Spring Social предлагает четыре основных проекта:
- Весеннее Социальное ядро
- Весенняя Социальная сеть Facebook
- Весенний Социальный Твиттер
- Весенняя социальная сеть LinkedIn
Каждый из этих проектов предоставляет инструменты для взаимодействия со своими соответствующими API.
В этом уроке мы будем полагаться на Spring Social Facebook , чтобы создать простое приложение, которое аутентифицирует и авторизует пользователя, а затем показывает ему их собственную ленту Facebook.
Предпосылки
Для того, чтобы этот проект работал, необходимы две вещи.
Применение Пружинной Загрузки
Мы начнем с приложения Spring Boot по умолчанию. К счастью, используя Spring Initializr или даже встроенный Плагин IntelliJ Idea Spring Initializr, мы можем легко создать скелетный проект для создания.
Какой бы вариант вы ни выбрали, выберите зависимости Web и Thymeleaf , остальные мы добавим позже.
Разработчики Facebook
Кроме того, для того, чтобы Spring Social могла взаимодействовать с API Facebook, ей требуется приложение Facebook.
Чтобы создать приложение Facebook, у вас должна быть учетная запись Разработчика Facebook .
После регистрации вы можете добавить новое приложение. Для этого требуется только имя и контактный адрес электронной почты, и выглядит это так:
Зависимости Maven
Предполагая, что вы правильно настроили приложение Spring Boot, теперь мы можем добавить остальные необходимые зависимости:
Зависимость для базы данных H2 включена просто потому, что для загрузки Spring требуется источник данных, и проще всего просто предоставить его для него.
Доступ к API Facebook
Включение Facebook
Для продолжения требуется соединение между вашим приложением Spring и приложением Facebook.
Чтобы настроить соединение, откройте файл application.properties , расположенный в src/main и введите:
Определение этих двух свойств предупреждает о появлении социальной сети Facebook, и это создает два важных компонента для нашего приложения.
Создание соединения
Давайте сами определим эти взгляды:
Подключение к facebook:
Получение Данных Facebook
С полностью настроенным подключением к Facebook мы можем продолжить и написать наш основной контроллер:
Этот контроллер работает простым способом. Это требует, чтобы мы ввели Facebook и ConnectionRepository в его конструктор. Класс Facebook предоставляет основные методы взаимодействия с Facebook, в то время как класс ConnectionRepository , как следует из названия, является интерфейсом доступа к данным для Подключения объектов.
Git Essentials
Ознакомьтесь с этим практическим руководством по изучению Git, содержащим лучшие практики и принятые в отрасли стандарты. Прекратите гуглить команды Git и на самом деле изучите это!
connectionRepository.Найдите первичное соединение(Facebook.class) будет иметь значение null только в том случае, если пользователь не разрешил вашему приложению получать данные из Facebook. В этом случае приложение просто возвращается в /подключение/facebook .
Теперь нам нужно определить представление, в котором мы будем отображать эту информацию с помощью Thymeleaf .
кормить.html :
Примечание : Начиная с версии 2.0 Facebook, возможность получения списка друзей Facebook была удалена. Эта функция больше не поддерживается Facebook, и попытка получить список друзей весной просто вернет пустой список.
И на этом данное заявление заканчивается. Давайте запустим его и посмотрим на результат.
Демонстрация приложения
После развертывания приложения и перехода на локальный хост:8080/подключение/facebook нас приветствует наше приложение с просьбой подключиться:
При подключении мы перенаправляемся на Facebook, запрашивая у нас разрешение действительно предоставить этому приложению наши данные:
Отсюда мы можем посетить нашу ленту:
Посетив нашу ленту, вы увидите некоторые из наших последних постов:
Дополнительные Функциональные возможности
Весенние светские мероприятия на этом не заканчиваются. Помимо проверки вашей ленты, он предлагает множество других функций:
Каждый из них предоставляет наборы методов для их целевого назначения, и в совокупности они могут быть использованы для создания мощных инструментов.
Охват всего этого вышел бы за рамки этого блога, поэтому мы рассмотрим только самые важные и полезные из них, такие как размещение на стенах, чтение каналов и так далее.
Получение Других Профилей
Так же, как мы делали, когда получали наши собственные данные, мы можем получать данные и от других пользователей, передавая их идентификатор в качестве параметра:
Публикация Статусов
Возможно, вы захотите использовать это для написания автоматизированных сервисов, таких как IFTTT или Буфер :
Это просто опубликует один статус со строкой |, которую вы ввели.
Еще один способ опубликовать статус-это разместить ссылку:
Публикация в ленте друга
Эта функция была удалена Facebook в 2013 году.
Получение списка друзей
Эта функция была удалена Facebook в 2014 году.
Вывод
В этом уроке мы погрузились в Spring Social, а точнее, в проект Spring Social Facebook.
Мы создали учетную запись разработчика Facebook и приложение Spring Boot с подключением к нашему приложению Facebook.
После этого мы изучили некоторые функции проекта Facebook в нашей собственной, а также некоторые другие функции, которые предлагает этот API.
Случалось ли вам задумываться о том, что наиболее востребованные приложения на Facebook просты и похожи по сути? Все эти виртуальные объятья, поздравительные открытки, пожелания, симпатии, пинки, смайлы, карма-обмен и прочие психологические «поглаживания» отличаются лишь формой, в которой пользователь получает свою очередную порцию внимания. Таким образом, это ниша всегда открыта для желающих опробовать собственную идею. Особенно теперь, когда Facebook заговорил по-русски, и русскоязычные приложения особенно востребованы. Приложения Facebook набирают аудиторию на манер «сарафанного радио», подобно цепной реакции. Если у вас есть действительно стоящая идея, то реализовав ее, вы получаете потенциальную аудиторию в 20 млн. пользователей Facebook. При таком размахе не удивительно, что некоторые любительские приложения для Facebook продаются за десятки тысяч долларов.
Впрочем, скептики могут здесь справедливо заметить: «Если так просто заработать на Facebook, то почему же мы все еще не разбогатели на нем?!». Это как в лотерее — пробовать могут все, но удача улыбнется лишь единицам. С другой стороны вы можете предложить аудитории Facebook любое приложение на ваш вкус. Мне недавно попадался на глаза простой опросник на совместимость для тех, кто любит путешествовать. Сделайте что-нибудь подобное и разместите на страницах приложения логотип туроператора за оговоренную сумму. Впрочем, к чему фантазировать? Способы монетизации успешного приложения описаны на Facebook. Кроме того, имея за спиной пару-тройку популярных приложений, вы можете заявить себя на Facebook Marketplace и получить желаемые заказы. Или же, вы сами можете изучить анатомию приложений для этой платформы. Вкратце, вам предоставляется рабочая область (Facebook Canvas Pages) приложения и ссылка на него в левой панели навигации (Left Nav).
Активность друзей пользователя в рамках данного приложения может отображаться на главной странице пользователя. Для этого приложение протоколирует активность пользователей, помещая записи в New Feed.
Приложение в сокращенной форме может быть представлено в специальном блоке (Profile Box) на странице профиля пользователя. Приложение может добавлять в профиль пользователя ссылку на некоторое действие. Допустим, если ваше приложение предполагает взаимовосхваление пользователей, будет логично добавлять в профиль подписчиков приложения ссылку «Восхвалить пользователя».
Приложение может высылать уведомления на Email (Alert), а также высылать пользователям приглашения к принятию участия в каком либо событии. Скажем, ваше приложение предлагает всем участникам виртуально взяться за руки в знак поддержки Тибета. Вы можете предложить пользователям приложения высылать приглашение к этому мероприятию для случайных пользователей Facebook.
Как я уже сказал, для создания приложения следует ознакомиться, как минимум, с языками FBML и FBJS. Впрочем, для серьезных задач вам не обойтись также и без FQL и Facebook API. Как вы, наверняка, догадались, при каждом обращении к странице вашего приложения Facebook будет брать код страницы с вашего сайта, затем преобразовывать его на свой лад и отображать пользователю. Если он походу встречает конструкции языка FBML, он следует им. Т.е. вам нет необходимости писать код ваших страниц на новом неизвестном вам языке. Вы вольны использовать (x)HTML, но расширять его посредством FBML. В этом плане FBML напоминает мне, столь близкий сердцу XML Sapiens. К примеру, корректную ссылку на профиль пользователя и его имя вы можете получить с помощью следующей конструкции:
В справочнике к языку FBML вы найдете множество инструментов получения информации о пользователях, группах и их статусах, представления профиля, использования различных медиа-форматов, отображения готовых виджетов для комментирования, рассылки запросов на выбранную группу, форм ввода данных, диалоговых окон, captcha и многое другое. Все в стиле Facebook, как вы понимаете. FBML также обслуживает и логические выражения (fb:if/fb:else, fb:switch и т.д.). Можно посмотреть как это происходит в «песочнице» Facebook. Во многих случаях использование FBML достаточно удобно, что едва ли можно сказать о FBJS. Все включения Java Script на страницах вашего приложения будут также преобразованы.
К примеру, функция:
function getWinSize() <
w = document.documentElement.clientWidth;
h = document.documentElement.clientHeight;
return ;
>
Превращается во что-то вроде:
function a12345_getWinSize() <
a12345_w = a12345_document.documentElement.clientWidth;
a12345_h = a12345_document.documentElement.clientHeight;
return ;
>
Вот и приехали. Можете расстаться со своими тщетными мечтами об использовании в приложении для Facebook своих личных JS-библиотек или любимых фреймворков. Придется писать все требуемые функции по новой, причем, сверяя каждый шаг с документацией. С другой стороны Facebook предоставляет простенький фреймворк, позволяющий обслуживать асинхронные запросы на контроллер (AJAX) и формировать диалоговые окна.
FBML и FBJS позволят вам построить несложное приложение. Однако если вам требуются, скажем, выборка пользователей Facebook согласно их интересам, готовые виджеты FBML едва ли смогут вам помочь. На этот случай имеется REST-сервер Facebook, обслуживающий широкий ряд удаленных процедур. Все они описаны в документации, а для пробы сил имеется «песочница». Но более того, вы можете получать выборки непосредственно из баз данных Facebook посредством запросов, весьма напоминающих привычный нам SQL. Все таблицы и поля тщательно описаны. Имеются различные примеры запросов. Все что требуется, это сформировать запрос, отослать его в параметрах REST-вызова facebook.fql.query и разобрать ответ сервера.
Как будет организована ваша программная часть не имеет особого значения, по крайней мере, для Facebook. Вы лишь должны отдавать (x)HTML внутри тега BODY при запросе страниц приложения. При этом следует инициировать класс, загруженной с Facebook клиентской библиотеки:
require_once 'vendors/facebook/facebook.php';
$appapikey = 'ваш API Key;
$appsecret = 'ваш Secret';
$facebook = new Facebook($appapikey, $appsecret);
$user_id = $facebook->require_login();
Единственное, что я могу здесь добавить – используйте пользовательский интерфейс Facebook там, где это уместно. К примеру, главное меню приложения можно поместить в табы:
<fb:tabs>
<fb:tab-item href=«apps.facebook.com/study_english» title=«Quizze» selected=«true» />
<fb:tab-item href=«apps.facebook.com/study_english/?page=course» title=«Course» />
<fb:tab-item href=«apps.facebook.com/study_english/?page=rating» title=«TOP 50 Users» />
<fb:tab-item href=«apps.facebook.com/study_english/?page=invite» title=«Invite friends» />
</fb:tabs>
Для формы приглашения друзей к использованию вашего приложения можно использовать готовый виджет:
<fb:fbml>
<fb:request-form action="" method=«POST» invite=«true» type=«new cute app» content=«If you have been learning English for long time, you know – one of the most confusing things in the language is phrasal verbs. Do you know them enough? Test yourself here.
<? print htmlentities(»<fb:req-choice url=«apps.facebook.com/study_english» label=«Add My APP!» />"); ?>">
<fb:multi-friend-selector showborder=«false» actiontext=«Invite your friends to use Brush Up Your English.»>
</fb:request-form>
</fb:fbml>
Зато относительно FBSJ мой опыт может сэкономить вам время. Пример использования AJAX предоставленный Facebook едва ли устроит вас. Он слишком упрощенный. Я сделал на его базе более универсальный вариант.
Java Script
function $(divName) < return document.getElementById(divName); >
function user_event(div_id) callRemoteProc(
<
«ctrl_action»:«user_event»,
«param1»:«param2 data»,
«param2»:«param3 data»
>, div_id);
return false;
>
function callRemoteProc(params, bind_id) var ajax = new Ajax();
ajax.responseType = Ajax.JSON;
ajax.ondone = function(data)
var $ActionCode=1;
var $ErrorMsg="";
var $Body="";
function respond($message="", $errormsg="") if($message) $this->Body = $message;
if($errormsg) $this->ErrorMsg = $errormsg;
$out = ' «ActionCode»: "'.$this->ActionCode.'",
«ErrorMsg»: "'.($this->ErrorMsg?addslashes(preg_replace("/[rn]/", "", $this->ErrorMsg)):"").'",
«Body»: "'.($this->Body?addslashes(preg_replace("/[rn]/", "", $this->Body)):"").'"
>';
header(«Content-type: text/html; charset=UTF-8»);
print $out;
exit;
>
>
?>
Как вы понимаете, сами собой пользователи не придут на ваше приложение. Они попросту не будут знать о его существовании. Вы скажете: «А как же каталог приложений Facebook?». Так вот для того, чтобы попасть в этот каталог вам потребуется обзавестись, по крайней мере, пятью пользователями. Впрочем, последняя позиция в каталоге, позади 20 тысяч прочих приложений тоже не способ обрести популярность.
Вы можете поискать пользователей Facebook, кому может быть интересно ваше приложение, по интересам или в группах. Пригласите их стать друзьями и отправьте им запрос на установку приложения. Если приложение им понравится, они отправят запрос своим друзьям. Если вы готовы инвестировать определенные средства в рекламу, переедите на страницу приложения Developer и нажмите ссылку «Advertise» выпадающего списка «more» напротив вашего приложения.
1- Модель логина в социальную сеть Facebook
Это модель шагов, которые проходит пользователь при вхождении на ваш вебсайт через социальную сеть Facebook.
Модель выше показывает, что вам нужно создать приложение на Facebook Developers, чтобы получить Client ID, Password и действительные Redirect URL.
Заметьте, что с каждым аккаунтом Facebook вы можете создать одно или более приложений.
2- Создать приложение на Facebook Developers
Для начала вам нужно войти в Facebook. Потом перейти по адресу:
В первый раз, вам нужно зарегистрироваться в "Facebook Developers", нажмите на "Register".
Далее вам нужно принять все условия Facebook.
Вам нужно ввести точный номер вашего телефона и нажать на "Send as Text" чтобы Facebook отправил вам код подтверждения.
Вы получите смс с код подтверждения. Введите этот код для подтверждения:
Вы успешно зарегистрировались, и стали членом сообщества программистов Facebook.
Заметьте что сейчас вы еще не создали приложение Facebook. И вам нужно создать его.
Создать новое приложение, здесь я называю "LocalhostTest".
Нажмите на приложение "LocalhostTest" которое вы только создали.
Теперь у вас есть App ID и Password приложения.
Далее вам нужно создать Продукт (Product) для вашего приложения:
Введите URL которые позволяют вашему приложению перейти после того, как пользователь успешно вошел в Facebook.
В процессе создания приложения собираются определенные данные, минимально необходимые для создания нового уникального ID. После завершения этой процедуры вы сможете указать дополнительные сведения о приложении в Панели приложений или сразу же приступить к его сборке и тестированию.
Прежде чем начать
Шаг 1. Начало создания приложения.
Если вы только что завершили регистрацию, нажмите кнопку Создать первое приложение.
В противном случае откройте панель Приложения и нажмите Создать приложение.
Шаг 2. Выбор типа приложения.
От типа приложения зависит, какие именно продукты и API будут ему доступны. Если вы впервые создаете приложение и только знакомитесь с этим процессом, выберите вариант Нет. Впоследствии, узнав больше о наших продуктах и API, вы сможете выбрать для своего приложения тип с помощью этого документа, а затем создать новое приложение выбранного типа.
Шаг 3. Настройка имени и электронного адреса приложения.
Введите имя своего приложения и адрес электронной почты, на который мы сможем отправлять вам важные уведомления для разработчиков. Этот электронный адрес может отличаться от адреса, связанного с вашим аккаунтом Facebook, однако не забывайте его проверять, потому что на него будут поступать все важные уведомления для разработчиков.
Вы также можете добавить аккаунт Facebook Business Manager, если он у вас есть, а затем нажать кнопку Создать приложение.
Когда создание приложения будет завершено, оно загрузится в Панель приложений.
Дальнейшие действия
Создав приложение, вы можете приступить к его сборке и тестированию. Вы также можете указать дополнительные сведения о своем приложении в Панели приложений, однако для начала разработки это не требуется. Вы сможете в любой момент вернуться в панель приложений и изменить настройки.
Если у вас его еще нет, вы можете клонировать или загрузить PHP SDK с GitHub . Вам также понадобится подтвержденная учетная запись Facebook.
После регистрации приложения вы попадете на экран «Основные настройки», на котором вам нужно указать, как ваше приложение будет интегрироваться с Facebook:
Для целей этой статьи я буду использовать вариант интеграции с веб-сайтом. Мое приложение будет автономным веб-сайтом, и после авторизации Facebook перенаправит пользователя на указанный URL-адрес. Установите флажок рядом с параметром и введите URL-адрес страницы входа вашего приложения. Затем обязательно нажмите кнопку « Сохранить изменения» внизу страницы.
Вы также должны отметить значения App ID и App Secret в верхней части страницы, поскольку эти значения понадобятся вам для подключения вашего приложения к Facebook.
Использование SDK
Функциональность подключения и взаимодействия с Facebook предоставляется через объект Facebook Конструктор принимает массив параметров, которые содержат информацию о вашем приложении, например, идентификатор приложения и секрет приложения, которые отображаются на странице основных настроек вашего приложения.
авторизация
Метод getUser() Информация может быть или не быть доступной, в зависимости от того, вошел ли пользователь в систему или нет. Если метод возвращает 0, то вы знаете, что пользователь не вошел в систему.
Ссылка для входа в систему, которая служит отправной точкой для процесса аутентификации OAuth с Facebook, получается с помощью getLoginUrl() getLoginUrl() redirect_uri и scope .
Независимо от того, принимает ли пользователь запрос и входит ли он в Facebook или отклоняет ли он запрос, он будет перенаправлен обратно на redirect_uri, и в качестве параметров URL будут доступны несколько значений. Отклонение будет включать в себя параметры error error_reason error_description
Читайте также: