Facebook连接和自定义PHP应用程序的身份验证

时间:2011-05-28 10:12:41

标签: php facebook

我有自己的php应用程序,它有限制部分,只有经过身份验证的用户才能使用。按照说明from我设法创建了FB应用程序,并通过用于FB登录的电子邮件启用登录。

好的,但是,下一步该怎么做,以及如何加入我的Web应用程序和FB登录应用程序系统?我想不知怎的,我必须从Facebook应用程序获取信息,然后......做什么?

你能告诉我一些如何完成这个的想法吗?提前谢谢你!

1 个答案:

答案 0 :(得分:0)

您遵循的教程实现了客户端流程。这意味着每件事都是在用户的浏览器中完成的,而您的网络应用程序无法从Facebook轻松检索某些数据。

您必须实现服务器端流程。一个好的,简单的方法是使用Facebook PHP SDK(see on github)。所以你会有类似的东西:

require "facebook.php";
$facebook = new Facebook(array(
    'appId'  => YOUR_APP_ID,
    'secret' => YOUR_APP_SECRET,
));

$user = $facebook->getUser();

如果用户已登录,则$user是他的Facebook ID。然后,您必须通过进行API调用来检查您是否拥有有效的访问令牌:

  • 如果它没有引发任何异常,那么您有一个有效的访问令牌

  • 如果是,则必须重新验证用户。

这里:

if ($user) {
  try {
    $facebook->api('/me');
  } catch (FacebookApiException $e) {
    $user = null;
  }
}

然后,您需要显示登录或注销链接:

<?php if ($user): ?>
    <a href="<?php echo $facebook->getLogoutUrl() ?>">Logout of Facebook</a>
<?php else: ?>
    <a href="<?php echo $facebook->getLoginUrl() ?>">Login with Facebook</a>
<?php endif ?>

当用户登录并且您拥有有效的访问令牌时,您可以进行API调用以从Facebook获取数据:

$user_profile = $facebook->api('/me');

您可能需要查看记录良好的example page of the Facebook PHP SDK

希望有所帮助。