我有一个通过Facebook登录的应用程序。登录时,我只询问“public_profile”,“user_friends”和“email”权限。我知道我可以在稍后要求更多的许可,正如FB所说:
“即使有人第一次登录,您的应用也可以随时要求其他权限。例如,publish_actions权限允许您发布到某人的Facebook时间线。建议您仅在以下情况下请求此权限一个人准备将一个故事发布到Facebook。“
因此,当我即将发布到用户的墙上时,我想要求“publish_actions”。请告诉我如何使用Facebook SDK 4.大多数答案与FBSession,activeSession,requestNewPublishPermissions等相关,但在最新的Facebook SDK(4.1.0)中,没有FBSession类。
答案 0 :(得分:9)
您必须再次调用login方法才能请求其他权限。
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager logInWithPublishPermissions:@[@"publish_actions"]
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
{
if ([result.declinedPermissions containsObject:@"publish_actions"])
{
// permission denied
}
else
{
// do something
}
}];
答案 1 :(得分:2)
对于Parse Developer来说,它可以是一个答案。
PFFacebookUtils.linkUserInBackground(user, withPublishPermissions: ["publish_actions"], {
(succeeded: Bool?, error: NSError?) -> Void in
if succeeded {
println("User now has read and publish permissions!")
}
})
但我仍在寻找更通用的解决方案