2012-08-07 58 views
11

Stackoverflow使用不同的方式登录他们的网站,例如与Facebook登录。如何添加Facebook登录到我自己的网站?

随着Facebook的社交插件(见social plugins),你可以添加一个像按钮或Facebook登录。但如何通过使用stackoverflow来管理facebook账户与一个计算器账户?

+0

例如有注册你的链接页面上的插件那里。当然,有自己实现的方法 - 只需要用户连接到您的应用程序,获取您需要的信息,并使用您的页面登录系统创建一个新帐户。 – CBroe 2012-08-07 08:35:21

回答

4

Facebook登录插件只提供一种方式让您登录用户到您的网站。你必须自己链接到你的内部系统(就像StackOverflow一样)。这意味着根据Facebook用户的详细信息创建一个新的“用户”。

举例来说,如果你的网站使用的电子邮件地址作为“用户名”,那么你必须问的Facebook用户提供他们的电子邮件地址或索要电子邮件地址的权限。然后,为该用户创建一个新帐户并为其提供一个随机密码。

您还必须更改登录流程,以便现有用户可以使用其电子邮件/密码或其关联的Facebook帐户登录。

7

Facebook社交插件: 登录按钮 Facebook提供了他们称之为社交插件的东道主。我们感兴趣的是登录按钮。以下是将按钮放到网页上的基本步骤:

您需要为您的网站安装Facebook应用程序。转到https://developers.facebook.com/apps/,然后单击“创建新应用程序”按钮。

你的“应用显示名称”可以是有意义的。 我通常会使用该网站的域名。您也可以在未来将其用于其他目的。 “应用程序名称空间”需要是不包含任何特殊字符的内容。 我通常使用我的应用程序显示名称,不含空格,句点等。 现在您需要输入您的“应用程序域”和网站“网站URL”。为应用程序域输入您的网站托管的域名。 对于网站URL输入您网站的完整URL。 例如,如果您的域名是name.com,那么您的网站网址应该类似http://www.name.com。 保存您的更改,只要您输入了正确的信息。 现在你将有一个页面显示你的“App ID”和“App Secret”。 只需将该页面打开即可,因为在将登录按钮代码添加到页面时,您将需要您的应用程序ID。 现在我们需要从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> 

在代码中一定要与你的Facebook应用程序创建的应用程序ID替换APP_ID。 现在将第二个框中的代码粘贴到您希望登录按钮所在的任何地方。该代码应该是这个样子:

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

我改变了数据显示,面孔属性设置为false,因为它设置为true注销按钮,当用户登录时会不会渲染。

0

遵循应用注册和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)){ 
 
\t $request=new FacebookRequest($sess,'GET','/me'); 
 
\t $response=$request->execute(); 
 
\t $graph=$response->getGraphObject(GraphUser::classname()); 
 
\t $name=$graph->getName(); 
 
\t echo 'hi $name'; 
 
\t 
 
} 
 
else 
 
{ 
 
\t echo '<a href="'.$helper->getLoginUrl().'">Login with Facebook</a>'; 
 
}

相关问题