当用户访问我的网站时,我曾打开一个新窗口对用户进行身份验证,并通过我的应用程序请求许可(称为UseCase1)。但是当用户已经登录时,我试图通过PHP SDK获取已登录的用户信息,以便我不需要打开新窗口并检查相同的内容(您将避免打开一个新的窗口,该窗口在同时由于用户已经登录)。但getUser()方法不会返回任何东西。当我通过UseCase1(打开自动关闭的新窗口)时,同样的方法工作正常。 下面是我想使用的代码:使用PHP SDK的Facebook登录验证无法正常工作?
$facebook = new Facebook(array(
'appId' => $appId,
'secret' => $appSecret,
'oauth' => true
));
$me = $facebook->getUser();
if ($me) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
//code to redirect to login url
// USECASE1
// use $facebook->getUser() one USECASE1 is over
// now the user info is generated properly
}
}
所有时代的用户通过USECASE1会(但有一个空的窗口,因为用户登录和已验证的应用程序),即使他已经登录并且之前已经对应用程序进行了身份验证。
任何想法,为什么这种情况正在发生
库尔顿嗨, 我忘了提及的是,USECASE1是也称为if块外部,通过日志我已经检查过,正在调用的USECASE1是否是块外的一个。所以,$我永远不会被设置。正如我所说的流程超出了if块,然后到USECASE1,然后$ facebook-> getUser()工作正常。 –