私のプロジェクトでは Facebook iOS SDK 3.8 を使用していましたが、現在は 3.22 にアップグレードしています。
「publish_actions」権限のリクエスト中に奇妙なことが発生しました。これは、ユーザーがアカウントとパスワードを再度入力する必要があることです。以前のバージョンでは、「再度ログインする」という部分がスキップされるだけでした。Facebook SDK のロジックが変更されたかどうか、またはセッション処理プロセスを変更する必要があるかどうかを知りたいです。この問題に関するアイデアはありますか?
「publish_actions」権限をリクエストするために使用した方法は次のとおりです。
[activeSession openWithBehavior: FBSessionLoginBehaviorForcingWebView
completionHandler:^(FBSession *session,
FBSessionState state, NSError *error) {
[session reauthorizeWithPermissions:@[@"publish_actions"]
isRead:NO
behavior:FBSessionLoginBehaviorForcingWebView
defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:^(FBSession *session, NSError *error) {
}
そして、私も試しました
[FBSession.activeSession requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:^(FBSession *session, NSError *error) {
__block NSString *alertText;
__block NSString *alertTitle;
_reauthorizeInProgress = YES;
if (!error) {
if ([FBSession.activeSession.permissions
indexOfObject:@"publish_actions"] == NSNotFound){
// Permission not granted, tell the user we will not publish
alertTitle = @"Permission not granted";
alertText = @"Your action will not be published to Facebook.";
[[[UIAlertView alloc] initWithTitle:alertTitle
message:alertText
delegate:self
cancelButtonTitle:@"OK!"
otherButtonTitles:nil] show];
} else {
// Permission granted, publish the OG story
}
} else {
// There was an error, handle it
// See https://developers.facebook.com/docs/ios/errors/
}
}];