Как добавить логин facebook на мой собственный сайт?

Stackoverflow использует разные способы входа на свой веб-сайт, например. с входом в facebook.

С социальными плагинами facebook (см. социальные плагины) вы можете добавить понравившуюся кнопку или логин facebook. Но как это управляется stackoverflow для подключения учетной записи facebook с учетной записью stackoverflow?

Ответ 1

Facebook Социальный плагин: Кнопка входа в систему Facebook предлагает множество тем, которые они называют социальными плагинами. Мы заинтересованы в кнопке входа. Вот основные шаги, связанные с получением кнопки на вашей веб-странице:

Вам нужно приложение Facebook для вашего сайта. Перейдите в https://developers.facebook.com/apps/ и нажмите кнопку "Создать новое приложение".

Ваше "отображаемое имя приложения" может быть чем-то значимым. Обычно я использую доменное имя для сайта. Вы можете использовать это приложение для других целей и в будущем. "Пространство имен приложений" должно быть тем, что не содержит каких-либо специальных символов. Обычно я использую свое отображаемое имя приложения без пробелов, периодов и т.д. Теперь вам нужно ввести свой "домен домена" и "URL сайта" сайта. Для домена приложения введите доменное имя, на котором размещен ваш сайт. Для URL-адреса сайта введите полный URL-адрес вашего веб-сайта.  Например, если ваш домен - имя .com, то ваш URL-адрес сайта должен быть чем-то вроде http://www.name.com. Сохраните изменения после ввода правильной информации. Теперь у вас будет страница с вашими "Идентификаторами приложений" и "Секрет приложения".  Просто оставьте эту страницу открытой, потому что вам понадобится ваш идентификатор приложения, когда вы добавите код кнопки входа на свою страницу. Теперь нам нужно получить код кнопки входа в систему из Facebook. Перейдите в http://developers.facebook.com/docs/reference/plugins/login/ и нажмите кнопку "Получить код". Скопируйте код HTML5 из ​​первого окна и теперь поставьте его чуть ниже вкладки тела вашей веб-страницы. Код должен выглядеть примерно так:

<div id="fb-root"></div>
<script>
   (function(d, s, id) {
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {
       return;
     }
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=APP_ID";
     fjs.parentNode.insertBefore(js, fjs);
   } (document, 'script', 'facebook-jssdk'));
</script>

В коде обязательно замените APP_ID идентификатором приложения, созданным для вашего приложения Facebook. Теперь вставьте код из второго окна в любом месте, где вы хотите, чтобы кнопка входа в систему находилась. Код должен выглядеть примерно так:

<div class="fb-login-button" data-show-faces="false" data-width="200" data-max-rows="1"></div>

Я изменил атрибут data-show-faces на false, так как при его установке на true кнопка выхода не будет отображаться при входе пользователя в систему.

Ответ 2

Только плагин Facebook Login позволяет вам регистрировать пользователя на своем веб-сайте. Вы должны сделать ссылку на свою внутреннюю систему самостоятельно (как это делает StackOverflow). Это означает создание нового "User" на основе сведений о пользователе в Facebook.

Например, если ваш сайт использует адрес электронной почты как "имя пользователя", вы должны попросить пользователей facebook указать свой адрес электронной почты или запросить разрешение на адрес электронной почты. Затем вы создаете новую учетную запись для пользователя и предоставляете им случайный пароль.

Вы также должны изменить поток входа, чтобы существующие пользователи могли выполнять вход в систему с помощью своей электронной почты/пароля или связанной с ним учетной записи Facebook.

Ответ 3

следуйте этому коду после регистрации приложения и загрузки fb sdk:

<?php
require_once('lib/Facebook/FacebookSession.php');
require_once('lib/Facebook/FacebookRequest.php');
require_once('lib/Facebook/FacebookResponse.php');
require_once('lib/Facebook/FacebookSDKException.php');
require_once('lib/Facebook/FacebookRequestException.php');
require_once('lib/Facebook/FacebookRedirectLoginHelper.php');
require_once('lib/Facebook/FacebookAuthorizationException.php');
require_once('lib/Facebook/GraphObject.php');
require_once('lib/Facebook/GraphUser.php');
require_once('lib/Facebook/GraphSessionInfo.php');
require_once('lib/Facebook/Entities/AccessToken.php');
require_once('lib/Facebook/HttpClients/FacebookCurl.php');
require_once('lib/Facebook/HttpClients/FacebookHttpable.php');
require_once('lib/Facebook/HttpClients/FacebookCurlHttpclient.php');


use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\GraphUser;
use Facebook\GraphSessionInfo;

use Facebook\FacebookHttpable;
use Facebook\FacebookCurlHttpClient;
use Facebook\FacebookCurl;



session_start();
$app_id="";
$app_secret="";
$redirect_url="";
FacebookSession::setDefaultApplication($app_id,$app_secret);
$helper=new FacebookRedirectLoginHelper($redirect_url);
$sess=$helper->getSessionFromRedirect();
if(isset($sess)){
	$request=new FacebookRequest($sess,'GET','/me');
	$response=$request->execute();
	$graph=$response->getGraphObject(GraphUser::classname());
	$name=$graph->getName();
	echo 'hi $name';
	
}
else
{
	echo '<a href="'.$helper->getLoginUrl().'">Login with Facebook</a>';
}