我正在尝试将用户重定向到 Facebook 登录页面,然后返回到我的应用程序,而不显示登录应用程序页面。这可能吗?
我研究了由 PHP-SDK 自动生成的“next”参数,但似乎无法更改它。
有办法做我正在寻找的事情吗?我想确保用户已登录,以便检查他们是否已对我的应用程序进行身份验证,但如果他们尚未对我的应用程序进行身份验证,则不希望他们这样做。
感谢您的帮助!
不,我认为无法修改 next 参数。我看到下一个参数(在 PHP SDK 中)的唯一地方是在
getLogoutUrl()
函数中,如 base_facebook.php 的源代码中所示。该参数定义注销后要转到哪个网址。base_facebook.php文件中的
getLoginUrl()
,我们有
return $this->getUrl(
'www',
'dialog/oauth',
array_merge(array(
'client_id' => $this->getAppId(),
'redirect_uri' => $currentUrl, // possibly overwritten
'state' => $this->state),
$params));
作为函数中的最后一行,这显然意味着无论您尝试什么,都会显示 oauth 对话框。
如果您的应用程序不在 Facebook 上,那么您可以在 Javascript 中使用
<fb:login-button>Login with Facebook</fb:login-button>
,然后按照 this url 中的示例进行操作。您会在那里看到不可能完全删除该对话框,即使您不请求任何权限。他们只需在第一次时接受权限。 Facebook 永远不会让你在用户不知情/不接受的情况下获取他们的数据
如果您使用 php :
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => $fbconfig['appid'],
'secret' => $fbconfig['secret'],
'cookie' => true
));
//Facebook Authentication part
$user = $facebook->getUser();
if (!$user) {
// user is not logged on --> redirect to the login url
} else {
// user is logged on you can do what you want
}