为什么facebook显示多个权限对话框


Why does facebook show multiple permissions dialogues?

所以,我有一个应用程序,允许用户参加比赛,然后我想把他们的参赛记录发布到他们的时间线上。

因此,我请求权限如下:

$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,但这是经过设计的,第一个对话框由读取权限组成,如果您请求了publish_actionspublish_stream,则会出现第二个提示,要求用户提供写入权限。引用权限文档

此外,发布权限(如publish_actions或publish_stream)将在"登录"对话框中提示第二步,这可能会减少登录人数。

此外,作为一种最佳实践,您应该只在需要时请求写入或发布权限。引用权限文档,

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

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