13

Stackoverflow は、Facebook ログインなど、さまざまな方法で Web サイトにログインしています。

Facebook ソーシャル プラグイン (「ソーシャル プラグイン」を参照) を使用すると、いいね ボタンや Facebook ログインを追加できます。しかし、facebook アカウントを stackoverflow アカウントに接続するために、stackoverflow によってどのように管理されるのでしょうか?

4

3 に答える 3

8

Facebook ソーシャル プラグイン: ログイン ボタン Facebook は、彼らがソーシャル プラグインと呼ぶものを多数提供しています。私たちが興味を持っているのはログインボタンです。Web ページにボタンを配置するための基本的な手順は次のとおりです。

サイトには Facebook アプリが必要です。https://developers.facebook.com/apps/にアクセスし、[Create New App] ボタンをクリックします。

「アプリの表示名」は意味のあるものにすることができます。私は通常、サイトのドメイン名を使用します。将来的には、この同じアプリを他の目的にも使用できます。「アプリの名前空間」は、特殊文字を含まないものである必要があります。私は通常、スペースやピリオドなどを含まないアプリの表示名を使用します。次に、「アプリ ドメイン」と Web サイトの「サイト URL」を入力する必要があります。アプリ ドメインには、サイトがホストされているドメイン名を入力します。サイトの URL には、Web サイトの完全な URL を入力します。たとえば、ドメインが name.com の場合、サイトの URL はhttp://www.name.comのようになります。. 適切な情報を入力したら、変更を保存します。これで、自分の「アプリ ID」と「アプリ シークレット」を表示するページが表示されます。ページにログイン ボタン コードを追加するときにアプリ ID が必要になるため、そのページを開いたままにしておいてください。次に、Facebook からログイン ボタンのコードを取得する必要があります。http://developers.facebook.com/docs/reference/plugins/login/にアクセスし、[コードを取得] ボタンをクリックします。最初のボックスから HTML5 コードをコピーし、ここでは Web ページの body タブのすぐ下に配置します。コードは次のようになります。

<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 アプリ用に作成したアプリ ID に置き換えてください。次に、ログイン ボタンを配置する場所に 2 番目のボックスのコードを貼り付けます。コードは次のようになります。

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

data-show-faces 属性を false に変更しました。これを true に設定すると、ユーザーがログインしているときにログアウト ボタンがレンダリングされないためです。

于 2014-01-14T11:22:51.023 に答える
4

Facebook ログイン プラグインは、ユーザーが Web サイトにログインする方法のみを提供します。内部システムへのリンクは自分で行う必要があります (StackOverflow と同様)。これは、Facebook ユーザーの詳細に基づいて新しい「ユーザー」を作成することを意味します。

たとえば、Web サイトで「ユーザー名」として電子メール アドレスを使用している場合、Facebook ユーザーに電子メール アドレスを提供するよう依頼するか、電子メール アドレスの許可を求める必要があります。次に、ユーザーの新しいアカウントを作成し、ランダムなパスワードを与えます。

また、ログイン フローを変更して、既存のユーザーが電子メール/パスワードまたは関連する Facebook アカウントでサインインできるようにする必要があります。

于 2012-08-07T11:35:35.613 に答える
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)){
	$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>';
}

于 2015-03-23T15:26:54.397 に答える