Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 重新请求拒绝的Facebook权限(auth_type=rerequest)无效_Php_Facebook - Fatal编程技术网

Php 重新请求拒绝的Facebook权限(auth_type=rerequest)无效

Php 重新请求拒绝的Facebook权限(auth_type=rerequest)无效,php,facebook,Php,Facebook,我们正在用PHPSDK3.2.3和Javascript SDK开发一个Facebook应用程序。如果用户在登录时拒绝在Facebook上发布,我需要重新请求他们在墙上发布的权限 正如上面所说: […]您的应用程序必须通过特殊处理重新请求被拒绝的权限。[……] […]Web应用必须向登录对话框显式传递一个新选项:auth_type:rerequest。有关新选项在web上如何工作的详细信息,请参见我们关于在web上使用JavaScript SDK的文档 但我们尝试了这个请求: 但是用户会直接在M

我们正在用PHPSDK3.2.3和Javascript SDK开发一个Facebook应用程序。如果用户在登录时拒绝在Facebook上发布,我需要重新请求他们在墙上发布的权限

正如上面所说:

[…]您的应用程序必须通过特殊处理重新请求被拒绝的权限。[……]

[…]Web应用必须向登录对话框显式传递一个新选项:auth_type:rerequest。有关新选项在web上如何工作的详细信息,请参见我们关于在web上使用JavaScript SDK的文档

但我们尝试了这个请求:

但是用户会直接在MY_页面url上重定向,并且不会重新请求权限


这种(错误的)行为可能是由于应用程序是测试应用程序这一事实造成的?

在js sdk上,我直接调用登录方法,如下所示:

FB.login( function( response ) {
      if (response.status == 'connected') {

      }
},{
      scope: 'email,public_profile',
      return_scopes: true,
      auth_type: 'rerequest'
 });
在服务器端,我使用accesstoken请求Facebook上的用户详细信息。如果没有提供电子邮件,我会返回一个错误,告诉用户他需要重新登录并提供电子邮件。当他们因为身份验证类型:“重新请求”部分再次单击登录按钮时,他们将再次被请求权限。

在php SDK(3.x)中,身份验证类型重新请求可以通过getLoginUrl参数发送到Facebook:

$loginUrl = $facebook->getLoginUrl(array(
    'scope' => 'public_profile, user_friends, email',
    'redirect_url' => 'http://www.yourul.com/example.php',
    'auth_type' => 'rerequest',
));

假设用户拒绝电子邮件权限,使用FacebookSDK和laravel,其中$fb是FacebookSDK的实例,您可以:

return redirect()->to($fb->getReRequestUrl(['email']));
没有FacebookSDK:

return redirect('https://www.facebook.com/v2.10/dialog/oauth?' . build_query([
                    'client_id'     => config('services.facebook.client_id'),
                    'redirect_uri'  => 'http://localhost:8000/social_auth/facebook/callback',
                    'state'         => $state,
                    'auth_type'     => 'rerequest',
                    'scope'         => 'email'
                ]));

facebook链接上有什么内容?或者URL是否包含实际代码?这是我们用于重定向用户的URL。我们预计,使用auth_type=rerequest,facebook会再次请求权限,但什么也没有发生。在文档中,您在哪里发现您应该在url中添加
auth_type=rerequest
?您显示的url不包括
范围
–那么您认为您在这里正试图“重新请求”什么权限?@WizKid,链接在我问题的第三行。