Добавьте переменные области данных к кнопке входа в Facebook - PullRequest
5 голосов
/ 03 февраля 2012

Все, я использую код, который предоставляет Facebook, но вот что я использую:

<?php
define('123', '123');

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

$facebook = new Facebook(array(
  'appId'  => '123',
  'secret' => '12344556',
));
$userId = $facebook->getUser();
?>

<html>
  <body>
    <?php if ($userId) { 
      //$userInfo = $facebook->api('/' + $userId);
      $userInfo = $facebook->api('/me'); 
      print_r($userInfo);
      ?>
      Your email address is: <?= $userInfo['email'] ?>
    <?php } else { ?>
    <div id="fb-root"></div>
    <fb:login-button></fb:login-button>
    <?php } ?>
    <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId      : '<?= 123?>',
          status     : true, 
          cookie     : true,
          xfbml      : true,
          oauth      : true,
        });

        FB.Event.subscribe('auth.login', function(response) {
          window.location.reload();
        });
      };

      (function(d){
         var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
         js = d.createElement('script'); js.id = id; js.async = true;
         js.src = "//connect.facebook.net/en_US/all.js";
         d.getElementsByTagName('head')[0].appendChild(js);
       }(document));
    </script>
  </body>
</html>

Если мне нужен чей-то адрес электронной почты, когда они входят в систему, я хочу добавить эти данные.переменная области видимости, поэтому, если они в первый раз входят в систему, он предлагает им дать мне это разрешение.Где я могу добавить это к коду выше?Нужно ли вводить это в кнопку входа в систему?

Пожалуйста, помогите!

Спасибо!

Ответы [ 3 ]

7 голосов
/ 03 февраля 2012

Per http://developers.facebook.com/docs/reference/plugins/login/

Используйте атрибут scope, чтобы сообщить диалогу, какие разрешения запрашивать.

<fb:login-button scope="email"></fb:login-button>

6 голосов
/ 19 апреля 2013
<fb:login-button data-scope='email'></fb:login-button>

Это больше похоже на пример, который Facebook использует на https://developers.facebook.com/docs/reference/plugins/login/

2 голосов
/ 03 февраля 2012

Вы должны установить атрибут области действия, чтобы контролировать процесс аутентификации.

<fb:login-button scope='email'></fb:login-button>

Больше информации о сфере применения:

https://developers.facebook.com/docs/reference/api/permissions/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...