Php-facebook-login

提供:Dev Guides
移動先:案内検索

PHP-Facebookログイン

Facebookログインを使用して、ユーザーがWebサイトにアクセスできるようにすることができます。 このページでは、facebook PHP SDKを使用したログインについて説明します。

Facebookでログイン

  • [[1]]
  • ウェブサイトを選択
  • アプリ名を入力して、[新しいFacebookアプリIDの作成]をクリックします
  • [アプリIDの作成]をクリックします
  • [クイックテストをスキップ]をクリックします

最終段階では、下図のように表示されます。

facebook

fbconfig.phpファイルの概要

  • link:/php/facebook.zip [こちら]からzipをダウンロードします
  • fbconfig.phpファイルを開き、アプリIDとアプリSecreteを追加します
FacebookSession::setDefaultApplication( 'your app ID','App Secrete ' );
//login helper with redirect_uri
   $helper = new FacebookRedirectLoginHelper('You web address' );

最後に以下に示すようにfbconfig.phpファイル-

<?php

   session_start();

  //added in v4.0.0
   require_once 'autoload.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\Entities\AccessToken;
   use Facebook\HttpClients\FacebookCurlHttpClient;
   use Facebook\HttpClients\FacebookHttpable;

  //init app with app id and secret
   FacebookSession::setDefaultApplication( '496544657159182','e6d239655aeb3e496e52fabeaf1b1f93' );

  //login helper with redirect_uri
   $helper = new FacebookRedirectLoginHelper('http://www.finddevguides.com/' );

   try {
      $session = $helper->getSessionFromRedirect();
   }catch( FacebookRequestException $ex ) {
     //When Facebook returns an error
   }catch( Exception $ex ) {
     //When validation fails or other local issues
   }

  //see if we have a session
   if ( isset( $session ) ) {
     //graph api request for user data
      $request = new FacebookRequest( $session, 'GET', '/me' );
      $response = $request->execute();

     //get response
      $graphObject = $response->getGraphObject();
      $fbid = $graphObject->getProperty('id');          //To Get Facebook ID
      $fbfullname = $graphObject->getProperty('name');  //To Get Facebook full name
      $femail = $graphObject->getProperty('email');     //To Get Facebook email ID

     /* ---- Session Variables -----*/
      $_SESSION['FBID'] = $fbid;
      $_SESSION['FULLNAME'] = $fbfullname;
      $_SESSION['EMAIL'] =  $femail;

     /* ---- header location after session ----*/
      header("Location: index.php");
   }else {
      $loginUrl = $helper->getLoginUrl();
      header("Location: ".$loginUrl);
   }
?>

ログインページの概要

ログインページはFBへのログインに使用されます

<?php
   session_start();
   session_unset();

   $_SESSION['FBID'] = NULL;
   $_SESSION['FULLNAME'] = NULL;
   $_SESSION['EMAIL'] =  NULL;
   header("Location: index.php");
?>

Index.php

インデックスページは以下のとおりです。

<?php
   session_start();
?>
<html xmlns:fb = "http://www.facebook.com/2008/fbml">

   <head>
      <title>Login with Facebook</title>
      <link
         href = "http://www.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-combined.min.css"
         rel = "stylesheet">
   </head>

   <body>
      <?php if ($_SESSION['FBID']): ?>      <!--  After user login  -->

         <div class = "container">

            <div class = "hero-unit">
               <h1>Hello <?php echo $_SESSION['USERNAME']; ?></h1>
               <p>Welcome to "facebook login" tutorial</p>
            </div>

            <div class = "span4">

               <ul class = "nav nav-list">
                  <li class = "nav-header">Image</li>

                  <li><img src = "https://graph.facebook.com/<?php
                     echo $_SESSION['FBID']; ?>/picture"></li>

                  <li class = "nav-header">Facebook ID</li>
                  <li><?php echo  $_SESSION['FBID']; ?></li>

                  <li class = "nav-header">Facebook fullname</li>

                  <li><?php echo $_SESSION['FULLNAME']; ?></li>

                  <li class = "nav-header">Facebook Email</li>

                  <li><?php echo $_SESSION['EMAIL']; ?></li>

                  <div><a href="logout.php">Logout</a></div>

               </ul>

            </div>
         </div>

         <?php else: ?>     <!-- Before login -->

         <div class = "container">
            <h1>Login with Facebook</h1>
            Not Connected

            <div>
               <a href = "fbconfig.php">Login with Facebook</a>
            </div>

            <div>
               <a href = "http://www.finddevguides.com"
                  title = "Login with facebook">More information about finddevguides</a>
            </div>
         </div>

      <?php endif ?>

   </body>
</html>

結果が生成されます。 この例を試す前に、ブラウザでフェイスブックアカウントをログアウトしてください。

Facebookログイン

ログアウトFacebook

以下のコードは、Facebookからログアウトするために使用されます。

<?php
   session_start();.
   session_unset();

   $_SESSION['FBID'] = NULL;
   $_SESSION['FULLNAME'] = NULL;
   $_SESSION['EMAIL'] =  NULL;
   header("Location: index.php");
?>