你应该如何处理前一段时间登录Facebook的人。来到你的网站,你应该继续链接(因为你发现他们已经登录到Facebook),然后在页面上,你指示他们给你这个错误。Facebook PHP SDK - OAuthException - OAuth2
Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user. thrown in /var/www/html/lib/base_facebook.php on line 1039
我不明白,你应该如何避免这种情况?这是否与你回到Facebook获得access_token的签名信息有关?看起来像这个签名的信息可以过期(它有一个issued_at日期)。在您的网站流程中处理这个问题的正确方法是什么?
你希望像这样写代码:
<?php
$user = $facebook->getUser();
try {
// attempt to do a call just to see if you are going to have this issue
$profile = $facebook->api('/me');
} catch (Exception $e) {
$user = false;
}
if ($user) { ?>
<a href="start.php">Begin</a>
<?php } else { ?>
<fb:login-button scope="email" size="large">Connect</fb:login-button>
<?php } ?>
取而代之的是:
<?php
$user = $facebook->getUser();
if ($user) { ?>
<a href="start.php">Begin</a>
<?php } else { ?>
<fb:login-button scope="email" size="large">Connect</fb:login-button>
<?php } ?>
获取$用户从Facebook的SDK回似乎只告诉你有一个cookie。而不是,如果这将实际上工作,当你去做API调用。
UPDATE: 所以我用这种方法唯一的问题是什么?当用户确实对我的网站的cookie,但是API调用失败 - 我告诉他们Connect按钮。用户点击连接按钮,它很快出现并消失。因为它不是真正的'auth.login',所以用户不会通过JavaScript重定向发送到我的start.php页面。别人如何处理这个问题?我很难过。请告诉我,我是如何尝试这样做的,还有其他缺陷。
是否检查该域名,APP_ID和app_secret是在这两个网站(您检查FB用户的一个存在,并在其上重定向一个)一样吗?并且用于在第一个网站上初始化Facebook对象的域应该是更高级别的域,然后是下一个网站。 – 2011-12-23 21:36:52
这些都在同一个网站上。成功登录后,我想将我的用户从/(或index.php)重定向到start.php – BuddyJoe 2011-12-25 17:50:00