3
下面的代碼在單擊fbloginview時允許用戶的讀取權限後嘗試重新授予發佈權限。Facebook SDK:用於發佈流的FBLoginView
#pragma mark FBLoginViewDelegate Method
- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user {
NSLog(@"User info fetched %@ %@", user.name, user.id);
[Global FBUser:user.first_name lastname:user.last_name fid:user.id];
if ([[FBSession activeSession] isOpen])
{
//[[FBSession activeSession] closeAndClearTokenInformation];
[[FBSession activeSession] reauthorizeWithPublishPermissions:[[[NSArray alloc] initWithObjects:@"publish_stream", nil] autorelease]
defaultAudience:FBSessionDefaultAudienceEveryone
completionHandler:^(FBSession* session, NSError* error)
{
if ([delegate respondsToSelector:@selector(SignUpAlertViewWasDone:)])
[delegate SignUpAlertViewWasDone:self];
[self removeFromSuperview];
}
];
}
它給了我這個錯誤在這裏:
異常「com.facebook.sdk:InvalidOperationException異常」,理由是:「FBSession:這不是有效的重新授權,而以前的重新授權的呼叫尚未完成「。
是否有一個函數,我可以檢測到前次重新授權的呼叫完成?
我嘗試使用openWithPublishPermission,但它不起作用。
它似乎工作。你能否解釋爲什麼 – LittleFunny 2013-03-05 10:54:23
'FBSession:在前一次重新授權調用還沒有完成時重新授權是無效的。'你可以在prev reauthorize塊中調用另一個重新授權調用(因此prev調用應該在塊完成後完成),我認爲這是原因, – adali 2013-03-05 12:26:46
問題是沒有辦法知道它何時完成。 – LittleFunny 2013-03-06 08:36:43