Facebook即时登录模式?

Facebook即时登录模式?,facebook,oauth,Facebook,Oauth,我正在使用FacebookOAuth界面,但无法立即使用模式参数。你知道如何与FB或任何其他url一起使用吗 (我不/不能使用FB JS库。)让用户使用Facebook帐户登录您的网站的一个好方法是使用Facebook PHP SDK()。所以你会有这样的想法: require "facebook.php"; $facebook = new Facebook(array( 'appId' => YOUR_APP_ID, 'secret' => YOUR_APP_SE

我正在使用FacebookOAuth界面,但无法立即使用模式参数。你知道如何与FB或任何其他url一起使用吗


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

让用户使用Facebook帐户登录您的网站的一个好方法是使用Facebook PHP SDK()。所以你会有这样的想法:

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 ?>
您可能需要检查记录良好的


希望对您有所帮助。

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


我从FB php sdk中提取了以下url(昆汀提醒我):

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


请参阅OpenID立即模式以了解这一点的用处。

谢谢,我没有使用php,但它帮助我找到了答案。我使用的是Java。看我的回答:我不知道这个网址。你能分享一下你是如何使用它的吗?你在
no\u user
no\u session
ok\u session
url中放了什么代码?我的意思是:你在3个登录页上采取了什么行动?如果(a)用户已与FB登录(与FB有实时会话)并且(b)之前已授权您的应用程序,则使用什么java代码(验证用户身份、呈现登录链接、将其重定向到facebook、存储访问令牌等)自动登录用户(无需登录FB登录页面)。在OKJ会话中,您可以获得足够的信息来识别用户并启动会话,但是在NONSession /用户上,您认为用户没有在访问者中签名。
$user_profile = $facebook->api('/me');
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
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