Facebook登录即时模式?

时间:2011-05-30 07:04:34

标签: facebook oauth

我正在使用Facebook OAuth界面,但无法立即获取模式参数。您是否知道如何使用FB或任何其他网址来使用?!

(我不/不能使用FB JS库。)

3 个答案:

答案 0 :(得分:2)

让用户使用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

希望有所帮助。

答案 1 :(得分:2)

我从FB php-sdk中提取了以下网址(Quentin提醒我):

https://www.facebook.com/extern/login_status.php
  ?api_key=<your app-id or api-key>
  &no_user=<callback url>
  &no_session=<callback url>
  &ok_session=<callback url>
  &session_version=3

当您将用户重定向到上面的网址(或将其作为iframe或弹出窗口打开)时,Facebook会默默地/立即将用户/浏览器重定向到:

    用户尚未登录时
  • no_user
  • no_session当用户已登录但尚未授权您的应用时。
  • 用户已登录并已授权您的应用时,
  • ok_session。其他参数(用户标识和所需令牌)将由FB附加到此URL,您需要验证。

例如:

https://www.facebook.com/extern/login_status.php
  ?api_key=123456789012345
  &no_user=http://example.com/signin/fb/no_user
  &no_session=http://example.com/signin/fb/no_session
  &ok_session=http://example.com/signin/fb/ok_session
  &session_version=3

将它们放在一行中,没有空格,如果需要,不要忘记编码网址。

请参阅OpenID立即模式以找出其有用的原因。

答案 2 :(得分:0)

如果您正在开发基于Java的应用程序,那么您可以使用SoicalAuth库。

http://code.google.com/p/socialauth/