내 페이스 북 계정으로 로그인하면 앱을 시작할 때마다 토큰이 자동으로 지워지는 것을 제외하고는 모든 것이 잘 작동하므로 다시 로그인하도록 요청합니다 didFinishLaunchingWithOptions
. 활성 세션을 확인 하려면에서 다음 코드를 사용합니다 .
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
NSLog(@"Found a cached session");
// If there's one, just open the session silently, without showing the user the login UI
[FBSession openActiveSessionWithReadPermissions:@[@"public_profile", @"email", @"user_friends",@"publish_actions,publish_stream"]
allowLoginUI:NO
completionHandler:
^(FBSession *session, FBSessionState state, NSError *error) {
NSLog(@"session exp. = %@",session.accessTokenData.expirationDate);
[self sessionStateChanged:session state:state error:error delegate:_delegate];
if (error) {
NSLog(@"error: %@",error.localizedDescription);
}
[[NSUserDefaults standardUserDefaults]setObject:[Utils languageSelectedStringForKey:@"Logout"] forKey:@"fbState"];
[[NSUserDefaults standardUserDefaults]synchronize];
[self sessionStateChanged:session state:state error:error delegate:nil];
}];
// If there's no cached session, we will show a login button
} else {
[[NSUserDefaults standardUserDefaults]setObject:[Utils languageSelectedStringForKey:@"Login with Facebook"] forKey:@"fbState"];
[[NSUserDefaults standardUserDefaults]synchronize];
NSLog(@"no cached session -> show a login button");
// UIButton *loginButton = [self.customLoginViewController loginButton];
// [loginButton setTitle:@"Log in with Facebook" forState:UIControlStateNormal];
}
발견 있도록 캐시 된 세션 메시지가 인쇄됩니다,하지만 난 그것을 지워 내가 찾은 세션을 검사 할 때, 내가 뭘 발견하는 방법입니다 openActiveSessionWithReadPermissions
하지라고!
어떤 제안이라도주세요 !!
문제를 발견했습니다. 세션을 저장할 수없는 잘못된 권한을 사용하고 있었으므로 권한을 아래와 같이 편집했습니다.
@[@"public_profile", @"email", @"user_friends",@"publish_actions"]
그래서 내가 제거한 후에 publish_stream
모든 것이 완벽하게 작동했습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다