===== Автоматическая регистрация и авторизация через социальные сети на форуме 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~~