使用OAuth登录Facebook


facebook login using oauth

<?php
require "facebook.php";
$facebook = new Facebook(array(
    'appId'  => '3288@@@@@@@@@@',
    'secret' => 'ca2@@@@@@@@@@@@@@@@@@',
));
$user = $facebook->getUser();
if ($user) {
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    $user = null;
  }
}
?>
<?php if ($user): ?>
    <form action="#" method="get">
      NAME:  <input type="text" name="name"
            value="<?php echo $user_profile['name'] ?>"><br>
        KID'S NAME <input type="text" name="kid"><br>
        DOB <input type="text" name="kid" value="<?php echo $user_profile['birthday'] ?>"><br>
        ADDRESS <input type="text" name="kid" value="<?php echo $user_profile['email'] ?>"><br>
        KID'S GENDER 
        male<input type="radio" name="r" value="male">      
        female <input type="radio" name="r" value="male"> <br>      
    EMAIL:   <input type="text" name="name"
            value="<?php echo $user_profile['email'] ?>"><br>
        <input type="submit" value="Continue &rarr;">
    </form>
    <a href="<?php echo $facebook->getLogoutUrl() ?>">
        Logout of Facebook
    </a>
<?php else: ?>
    <a href="<?php echo $facebook->getLoginUrl() ?>">
        Login with Facebook
    </a>
<?php endif ?>

我已经创建了应用程序,并且我有应用程序ID和密钥。现在我需要每当新用户单击登录页面时,它都会预先填写表单页面,但是当我登录时,它只是显示我的详细信息,当另一个用户登录时,它什么也没显示给我

它显示您的信息,因为您创建了应用程序并自动授予了您权限。

对于其他人,你需要你的应用先征求他们的许可。

你应该做的第一件事是:

$params = array(
  'scope' => 'read_stream,publish_stream',
  'redirect_uri' => 'https://www.myapp.com/login_approved.php'
);
$url = $facebook->getLoginUrl($params);
echo '<a href="' . $url . '">Give My App Access!</a>';

然后创建login_approved.php或任何您想要处理的页面,以便在有人批准您的应用程序时发生的情况。最值得注意的是,它应该记录用户的访问令牌。你需要向用户的访问令牌提供应用的访问令牌,以获取他们的信息。