将数据范围变量添加到facebook登录按钮

时间:2012-02-02 23:44:15

标签: php facebook-graph-api facebook

全部, 我正在使用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 个答案:

答案 0 :(得分:7)

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

使用scope属性告诉对话框要提示的权限。

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

答案 1 :(得分:6)

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

这更像是Facebook在https://developers.facebook.com/docs/reference/plugins/login/

上使用的示例

答案 2 :(得分:2)

您必须设置范围属性,以控制身份验证过程。

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

有关范围的更多信息:

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