使用PHP通过Facebook登录我的系统

use*_*104 6 javascript php facebook facebook-graph-api

我正在建立会员订购系统,我想让用户无需注册,他们可以直接登录Facebook.

问题是,这种方法的数据流什么?例如,Facebook是否返回用户帐户/ ID /电子邮件或任何其他信息,以便我可以将它们插入我的系统,或者它只是一个表明他/她已登录的会话?

另外,我想收集他们的电话号码(订单确认).如果访问者没有在他们的Facebook帐户中具体说明,如何处理此案

以下是我研究后的代码,但似乎只能返回会员ID?

<?php

    define('YOUR_APP_ID', 'YOUR APP ID');

    //uses the PHP SDK.  Download from https://github.com/facebook/php-sdk
    require 'facebook.php';

    $facebook = new Facebook(array(
      'appId'  => YOUR_APP_ID,
      'secret' => 'YOUR APP SECRET',
    ));

    $userId = $facebook->getUser();

    ?>

    <html>
      <body>
        <div id="fb-root"></div>
        <?php if ($userId) { 
          $userInfo = $facebook->api('/' . $userId); ?>
          Welcome <?= $userInfo['name'] ?>
        <?php } else { ?>
        <fb:login-button></fb:login-button>
        <?php } ?>


            <div id="fb-root"></div>
            <script>
              window.fbAsyncInit = function() {
                FB.init({
                  appId      : 'YOUR_APP_ID', // App ID
                  channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
                  status     : true, // check login status
                  cookie     : true, // enable cookies to allow the server to access the session
                  xfbml      : true  // parse XFBML
                });
            FB.Event.subscribe('auth.login', function(response) {
              window.location.reload();
            });
              };
              // Load the SDK Asynchronously
              (function(d){
                 var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
                 if (d.getElementById(id)) {return;}
                 js = d.createElement('script'); js.id = id; js.async = true;
                 js.src = "//connect.facebook.net/en_US/all.js";
                 ref.parentNode.insertBefore(js, ref);
               }(document));
            </script>

      </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

Jos*_*AGO 1

我现在在一个项目中使用 Facebook SDK for PHP,这是我请求用户数据的方式:

// If user is not logged in, set the login URL asking for permissions
if( $userId == 0 ) {
      // Generate a login url
      $url = $facebook->getLoginUrl( array( 'scope' => 'email, user_status' ) );
      ... Your Login button ...
} else {
      // Get user's info
      $userdata = $facebook->api( '/me' );
      $data = array(
            'first_name'    => $userdata['first_name'],
            'last_name'     => $userdata['last_name'],
            'username'      => $userdata['username'],
            'email'         => $userdata['email'],
            'languages'     => $userdata['languages'],
            'locale'        => $userdata['locale'],
            'timezone'      => $userdata['timezone'],
            'gender'        => $userdata['gender'],
            'location'      => $userdata['location'],
            'hometown'      => $userdata['hometown'],
      );
      print_r( $data );
}
Run Code Online (Sandbox Code Playgroud)