Facebookログインをアプリケーションに統合しています。ユーザーがログインできるようにしたいので、彼の誕生日と場所を取得します。
最新のFacebookSDKを入手して、アプリケーションに正常に追加しました。また、Facebookで新しいアプリケーションを作成し、アプリケーションに提供されたキーを追加しました。
「Facebookでログイン」ボタンを作成し、次のようにしました
ユーザーがボタンをクリックしたとき
// handler for button click
- (IBAction)facebookLoginTouched:(id)sender {
[self openSessionWithAllowLoginUI:YES];
}
このメソッドは、ユーザーの許可を得るためにFacebookのログインページをユーザーに表示します
-(BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_location",
@"user_birthday",
nil];
return [FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
[self HandleLogin];
}];
}
次に、ログインとアクセス許可が成功した場合
- (void)HandleLogin {
if (FBSession.activeSession.isOpen) {
//THIS IS NEVER REACHED
[FBRequestConnection
startForMeWithCompletionHandler:^(FBRequestConnection *connection,
id<FBGraphUser> user,
NSError *error) {
//DO SOMETHING WITH THE USER INFO
}];
}
}
私の問題:
ボタンをクリックすると、Facebookページが正しく表示され、ユーザー名/パスワードを入力します。それは私を正しく記録し、私はアプリケーションが私の情報にアクセスすることを許可しました。終了すると、アプリに正常に戻ります。
ただし、コードが到達FBSession.activeSession.isOpen
すると、falseが返されます。
正しくログインして許可を与えた後もセッションが閉じられるのはなぜですか?
どんな助けでも大歓迎です。
ありがとう