如何登录到一个Facebook帐户,并检索尽可能多的用户信息


How to login to a Facebook account and retrieve as much as possible more information of that user

登录后,如何获得该配置文件的更多信息以存储在数据库中,以便将来进行交叉检查和验证?

我的网站是这样登录到Facebook用户账户的:
require_once ‘facebook-platform/php/facebook.php’;
$appapikey = ‘_____________HIDDEN_____________′;
$appsecret = ’_____________HIDDEN_____________′;
$appcallbackurl = ‘exmaple.com’;
$facebook = array(
  ‘appapikey’ => $appapikey,
  ‘appsecret’ => $appsecret,
  ‘appcallbackurl’ => $appcallbackurl
);
require_once “Zend/Loader.php”;
Zend_Loader::registerAutoload();
$registry = Zend_Registry::getInstance();
$registry->set(‘facebook’,$facebook);
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
$frontController->setControllerDirectory(‘/application/controllers’);
$frontController->dispatch();

II)现在我需要这个用户的详细信息,如照片、出生日期、姓、名、Facebook的URL等。如何?

后续:

  • https://github.com/facebook/php-sdk

首先:您应该为其他人隐藏您的AppId和AppKey,至少是密钥。这是应该保密的东西,所以我想你现在需要更新你的钥匙。

切中要害:我不熟悉Zend框架,但我使用过PHP SDK。如果用户还没有登录,您可以使用PHP SDK中的getLoginUrl()方法来获取用户的loginurl。

如果你想检索用户的信息,你可以使用api()-方法来查询Graph api。下面是一个如何使用它的例子:

$fb = new Facebook(array('appId' => 'YOUR_APP_ID', 'secret' => 'YOUR_APP_SECRET'));
try {
    $fb_userid = $fb->getUser();
    if($database->checkIfUserExists($fb_userid) === false) {
        $user = $fb->api('/me','GET');
        $fb_firstname = $user['first_name'];
        $fb_lastname = $user['last_name'];
        $fb_email = $user['email'];
    }
} catch(FacebookApiException $e) {
    // do something
}

请记住,基本信息,如realname, userid,用户名和图片是可用的,无需要求更多的权限。如果你想要用户的电子邮件之类的信息,你必须请求许可。

查看下面的文档,了解可以从user-object获得哪些信息。

  • 文档- PHP SDK: https://developers.facebook.com/docs/reference/php/
  • 文档-图形API: https://developers.facebook.com/docs/reference/api/