0

首先,我想说这不是 Facebook php/javascript sdk 上的一般问题。我已经成功地将“Facebook 登录按钮”添加到了一些小测试项目中。

我的问题是,显示用户想要使用 Facebook 登录的最佳方式是什么。仅仅因为有人在访问我的网站时登录了 Facebook,并不一定意味着他们想使用Facebook 登录我的网站。

我知道在使用 FB 应用程序授权用户后,它会使用各种$_GET变量进行重定向,但是如果我的用户返回我的网站,并且已经授权了我的应用程序,我该如何创建一个基本上“Facebook 登录”按钮说' If user clicks this button, pull Facebook user_profile, and use their info for login, else require Facebook login as normal

我知道我可以创建一个按钮,转发到一个页面,设置一个会话变量,并重定向到主页,但我想创建这种效果而没有明显的重定向;如果可能,不要重定向。

4

2 回答 2

1

我想你想用FB.getLoginStatus. 您将异步收到一个响应,告诉您身份验证状态,您可以从那里手动进入(显示他们的信息、登录、如果需要重定向等)。

从 SDK 参考(https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/):

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    // the user is logged in and has authenticated your
    // app, and response.authResponse supplies
    // the user's ID, a valid access token, a signed
    // request, and the time the access token 
    // and signed request each expire
    var uid = response.authResponse.userID;
    var accessToken = response.authResponse.accessToken;
  } else if (response.status === 'not_authorized') {
    // the user is logged in to Facebook, 
    // but has not authenticated your app
  } else {
    // the user isn't logged in to Facebook.
  }
 });
于 2013-01-31T20:41:11.587 回答
1

如果您查看此处的文档:

https://developers.facebook.com/docs/reference/javascript/

javascript facebook api init 函数有一个参数,用于检查用户状态,使用该参数您可以查看用户是否已经对您的应用进行了身份验证并已登录。如果状态显示他们是经过身份验证的用户,您可以存储用户对象,但不要更改任何 UI 以显示您拥有该信息。

当用户单击登录按钮时,您已经有了他们的信息。

我想您要解决的问题是如何为该用户打开 PHP 会话?

于 2013-01-31T20:42:02.693 回答