所以,我有一个允许用户参加比赛的应用程序,然后我想将他们的参赛作品发布到他们的时间表。
因此我要求权限如下:
$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.
任何人都可以帮助解释为什么,这是预期的行为,还是我做错了的错误或什么?
谢谢!
答案 0 :(得分:2)
这不是错误,但这是设计,第一个对话框包含读取权限,如果您要求publish_actions
或publish_stream
,则会出现第二个提示,要求用户提供写权限。引自Permissions documentation
此外,发布权限(例如publish_actions或publish_stream)将在“登录”对话框中提示第二步,这会导致更少的人登录。
同样作为最佳做法,您应该仅在需要时询问写入或发布权限。引自Permissions documentation,
应用应该将读取和发布权限请求分开。计划您的应用程序在初始登录时请求最低限度的读取权限,然后在某人实际需要时请求任何发布权限,例如当他们想要在应用程序内创建Open Graph故事时。这可以提供最佳的用户体验并优化转换。
答案 1 :(得分:0)
一个人的权限,您的应用需要;和第二个扩展权限,您应用可以使用它来获得更丰富的体验,但对您应用的功能并不重要。