为什么Facebook显示多个权限对话?

时间:2013-07-09 10:57:02

标签: php facebook facebook-php-sdk user-experience

所以,我有一个允许用户参加比赛的应用程序,然后我想将他们的参赛作品发布到他们的时间表。

因此我要求权限如下:

$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.

任何人都可以帮助解释为什么,这是预期的行为,还是我做错了的错误或什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

这不是错误,但这是设计,第一个对话框包含读取权限,如果您要求publish_actionspublish_stream,则会出现第二个提示,要求用户提供写权限。引自Permissions documentation

  

此外,发布权限(例如publish_actions或publish_stream)将在“登录”对话框中提示第二步,这会导致更少的人登录。

同样作为最佳做法,您应该仅在需要时询问写入或发布权限。引自Permissions documentation

  

应用应该将读取和发布权限请求分开。计划您的应用程序在初始登录时请求最低限度的读取权限,然后在某人实际需要时请求任何发布权限,例如当他们想要在应用程序内创建Open Graph故事时。这可以提供最佳的用户体验并优化转换。

答案 1 :(得分:0)

一个人的权限,您的应用需要;和第二个扩展权限,您应用可以使用它来获得更丰富的体验,但对您应用的功能并不重要。