我遇到了requestNewPublishPermissions的问题(我使用的是SDK版本3.17). Facebook文档说只用读取权限登录,然后再请求写入权限,这就是我想要做的.我可以让用户使用这样的代码登录:
[FBSession openActiveSessionWithReadPermissions:@[@"public_profile"]
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState state, NSError *error)
{
// Handler for session state changes
// This method will be called EACH time the session state changes,
// also for intermediate states and NOT just when the session open
[self sessionStateChanged:session state:state error:error];
}];
然后当我想发布到时间轴时,我要求使用下面的代码扩展权限.该应用程序通过Facebook网页开始使用Safari.但该网页不是要求写入权限,而是说该应用程序已获得许可.然后当我点击正常,并且控制权返回到应用程序时,我没有发布权限.请参阅“这是最终结果!”下面.
我已尝试访问facebook.com并删除已在“Apps”下提供的权限.这没有任何区别.我还尝试过发布,但是这给了我一个错误,说我没有正确的权限.
有任何想法吗?
- (void) requestPublishPermission:(void (^)(void)) action
{
// Request publish_actions
[FBSession.activeSession requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:^(FBSession *session, NSError *error)
{
if (!error)
{
if ( [FBSession.activeSession.permissions indexOfObject:@"publish_actions"] == NSNotFound )
{
// this is where it ends up!
}
else
{
// Permission granted, publish the story
action();
}
}
else
{
// permission denied, alert user
}
}];
}
最佳答案 您需要添加要登录的用户,如Developer / Tester.或者您需要将您的应用程序提交到Facebook进行审核.