===== Автоматическая регистрация и авторизация через социальные сети на форуме phpBB v3.1. Часть 2.5. Подключение "Facebook" =====
Для подключения форума к учётной записи социальной сети **Facebook** мы предварительно должны создать в этой социальной сети отдельную учётную запись, от имени которой будет настроено подключение. Предположительно, это будет учётная запись для человека, являющегося администратором форума **phpBB**. Залогинившись в социальную сеть от имени этой учётной записи перейдём по ссылке:
[[https://developers.facebook.com/apps]].
Здесь сначала нам потребуется получить статус разработчика приняв условиями соглашения:
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-132935.png }}
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-132952.png }}
После регистрации пользователя социальной сети в качестве разработчика появится страница создания нового приложения **Add a New App**. Выберем вариант **Website**
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-133010.png }}
Введём имя приложения и нажмём кнопку **Create New Facebook App ID**
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-133037.png }}
Затем введём контактный адрес электронной почты, выберем категорию приложения (можно выбрать любую) и нажмём кнопку **Create App ID**
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-133104.png }}
После этого откроется длинная страница с кодом SDK, прокрутим страницу вниз, введём URL форума в окно **Site URL** и нажмём кнопку **Next**
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-133122.png }}
Затем страница ещё больше увеличится. Снова прокрутим страницу вниз и нажмём ссылку входа в панель управления приложениями **Skip to Developer Dashboard**
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-133137.png }}
Здесь мы сможем получить информацию о реквизитах только что созданного нами веб-приложения **App ID** и **App Secret**.
Внимание!\\
Никому не сообщайте секретный ключ **App Secret** приложения.
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-133206.png }}
Не смотря на то, что мы создали приложение и уже получили нужные нам данные для интеграции с форумом phpBB, приложение в данный момент выключено. Для того, чтобы его включить, перейдём в раздел **App Review**
Включим переключатель в вопросе **Make public?** = **Yes**
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-133228.png }}
Подтвердим запрос на переключение приложения в общедоступный режим:
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-133243.png }}
После этого, в таблице ниже мы увидим информацию об атрибутах пользователей социальной сети, которые будут доступны данному приложению.
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-133301.png }}
Теперь переходим в **Административный раздел** форума на вкладку **НАСТРОЙКА РАСШИРЕНИЙ** > Раздел **СОЦИАЛЬНАЯ АВТОРИЗАЦИЯ** > **Facebook**
Здесь включим авторизацию через **Facebook** и укажем ранее полученные данные **ID приложения** и **Секретный ключ приложения** (App Secret). Группа доступа для новых регистрируемых через социальную сеть пользователей – **По умолчанию**. Сохраним изменения кнопкой **Отправить**
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-133320.png }}
Помимо сделанных настроек на стороне нашего форума phpBB, для текущей версии расширения авторизации (2.0.1) потребуется внести одну правку в код скрипта, отвечающего за вызов **API Facebook**:
**…/forum/ext/bb3mobi/social/oAuth/facebook.php**
находим строку:
$params = array('access_token' => $access_token);
и заменяем её на строку:
$params = array('access_token' => $access_token, 'fields' =>'id,name,first_name,last_name,email,birthday,picture');
Сохраняем изменения в файле.
На этом настройку интеграции авторизации форума phpBB c социальной сетью можно считать выполненной. Остаётся проверить результат.
Для проверки можно создать в социальной сети **Facebook** тестового пользователя, залогиниться с его учётными данными в социальной сети, а затем перейти на форум и в правом верхнем углу нажать кнопку входа:
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-133427.png }}
Форум перенаправит пользователя на страницу входа социальной сети, где пользователю будет задан вопрос о согласии с тем, что Форум запрашивает учётные данные пользователя из базы данных социальной сети.
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-133444.png }}
После согласия будет выполнена процедура автоматической регистрация нового пользователя на форуме и будет выполнен вход этого пользователя на форум:
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-133508.png }}
Если пользователь перейдёт в раздел личных настроек в **Профиль** > **Мои аккаунты**, то сможет увидеть информацию о подключении к локальной учётной записи форума аккаунта социальной сети **Facebok**:
{{ :phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1:pasted:20160411-133527.png }}
Во время автоматической регистрации на почтовый ящик пользователя указанный в профиле социальной сети придёт письмо, в котором будет содержаться имя пользователя и пароль в локальной базе пользователей форума phpBB на тот случай, если авторизация через социальную сеть по какой-то причине окажется неработоспособной.
Все последующие входы пользователя на форум будут выполняться в автоматическом режиме без излишних запросов.
[[:phpbb:automatic-registration-of-new-users-and-authorization-by-social-networks-facebook-google-vk-yandex-mail-ru-ok-in-phpbb3-3-1|Перейти в оглавление...]]
----
{{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 11.04.2016 13:35
{{tag>phpBB phpBB3 Authorization "Social Network" Facebook API}}
~~DISCUSSION~~