Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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/9.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会显示多个权限对话?_Php_Facebook_Facebook Php Sdk_User Experience - Fatal编程技术网

Php 为什么facebook会显示多个权限对话?

Php 为什么facebook会显示多个权限对话?,php,facebook,facebook-php-sdk,user-experience,Php,Facebook,Facebook Php Sdk,User Experience,所以,我有一个应用程序,允许用户进入比赛,然后我想把他们的条目发布到他们的时间表上 因此,我请求以下权限: $loginParams = array( 'scope' => 'publish_actions', 'redirect_uri' => $facebookSettings['redirectUri'] ); 这是从我最初拥有的权限精简下来的: ...'scope

所以,我有一个应用程序,允许用户进入比赛,然后我想把他们的条目发布到他们的时间表上

因此,我请求以下权限:

$loginParams = array(
                    'scope' => 'publish_actions',
                    'redirect_uri' => $facebookSettings['redirectUri']
                );
这是从我最初拥有的权限精简下来的:

...'scope' => 'read_stream, user_photos, photo_upload' ....
但当访问该页面时,Facebook仍然会弹出两次权限对话。第一次甚至不准确,而且似乎造成了很多下降,因为人们不会超过这一点

第一条信息是:

  XXXXXX would like to access your public profile and friend list.
第二,我真正想要的是:

  XXXXX would like to post to your friends on your behalf.
有人能帮我解释一下为什么会出现这种预期行为,或者是一个bug或者是我做错了什么吗


谢谢

这不是一个bug,但根据设计,第一个对话框由读取权限组成,如果您要求执行
publish\u操作
publish\u流
,则会出现第二个提示,要求用户提供写入权限。引述

此外,发布权限(如发布操作或发布流)将在登录对话框中提示第二步,这可能导致登录人数减少

此外,作为一种最佳做法,您应该仅在需要时询问写入或发布权限。引述

应用程序应将读取和发布权限的请求分开。计划您的应用程序在初次登录时请求最低限度的读取权限,然后在用户实际需要时请求任何发布权限,例如,当用户希望从应用程序中创建一个开放的图表故事时。这提供了最佳的用户体验并优化了转换


您的应用程序所需的个人权限;第二个是扩展权限,你的应用程序可以使用它来获得更丰富的体验,但对你的应用程序的功能来说并不是必不可少的。

那么,要实现我所描述的流程,获得权限、完成工作,然后可能会重新提示用户将权限发布到他们的时间线上的最佳做法是什么?这并不难,只是让用户在提交比赛后重新登录并不合适。您可以要求用户在提交比赛前登录,然后让用户允许您的应用程序在其墙上发布帖子。或者您可以使用facebook的JavaScript SDK在用户的墙上显示发布帖子的提示,这可能会让用户选择是否发布帖子,因此登录时不要求烫发?提交时,使用PHPSDK是否需要另一个登录?如果我在登录时没有设置“范围”,这是否会生成“无perms”对话框?如果您不请求权限,则会向用户请求默认的公共配置文件和好友列表权限。此外,如果您可以提供在用户的墙上发布或不发布的选项,那就更好了,尽管如果您仍然想代表用户发布,那么在您即将发布时请求
publish\u stream
许可将更好,在请求之前明确提到这一点。这是我采用的方法,它在吸收上有很大的不同。