我正在尝试将用户重定向到Facebook登录页面,然后返回到我的应用程序,而不显示登录到应用程序页面。这可能吗?
我查看了由PHP-SDK自动生成的“next”参数,但似乎无法改变它。
无论如何都要做我正在寻找的事情?我想确保用户已登录,以便检查他们是否已对我的应用进行了操作,但如果他们尚未使用,则不希望他们使用。
感谢您的帮助!
答案 0 :(得分:2)
他们必须首次接受权限。如果没有他们的知识/接受,Facebook永远不会让你获取用户的数据
答案 1 :(得分:2)
不,我认为无法修改 next 参数。我看到下一个参数(在PHP SDK中)的唯一地方是getLogoutUrl()
函数,如 base_facebook.php 的源代码所示。并且该参数定义了注销后要去的URL。
对于 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中的示例进行操作。即使您没有要求任何权限,您也会看到无法完全删除该对话。·
Javascript SDK的FB.login()方法也将打开auth对话框。
希望这会有所帮助。
答案 2 :(得分:0)
如果您使用的是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
}