私は新しいFBSessionのreauthorisation(reauthorizeWithPermissionsについての質問のいくつかあります:誰かが上、私のアプリにFacebook経由でログインした後はのFacebookのiOS SDK 3.0再認証
:行動:completionHandler :) FacebookのSDK 3.0での特定のページ私は彼/彼女のFacebookの資格情報でユーザーを再認証したいと思います。これは、ページを閲覧している人とログインしている人が同じであることを確認するためです。再認証の権限はログインと同じです。私が必要とするのは、このケースを確実にするためにユーザーのパスワードを再確認することだけです。
したがって、私はreauthorisationWithPermissionsを使用しています:これを行うには。私はFBSessionLoginBehaviorForcingWebViewとして振る舞いを設定して、ユーザーが自分の資格情報を入力するように強制しています。しかし、これはまったく機能しません。このとき、FBSessionStateOpenに設定された状態でFBSesstionStateHandlerブロックを呼び出しますが、(completionHandler :)内で定義されたFBSessionReauthorizeResultHandlerを呼び出すことはできません。
しかし、単に振る舞いをデフォルト(FBSessionLoginBehaviorWithFallbackToWebView)に設定すると、要求をfacebook app/safari間でやりとりして正常に動作し、completionHandlerを正しく呼び出すことによって呼び出しを完了します。ただし、デフォルトの動作では、ユーザーがパスワードを再入力する必要はありません。
だから私は本当に混乱していて、ウェブ上のSDKのドキュメントには、私の場合のために非常に有用ではありません。誰かが私が間違っていることについて私に助言してもいいですか... SDKの既知のバグを晴らしていますか?もしそうなら、どうすれば私の要件を満たすことができますか? REAUTH Web表示が正しくポップアップしたら
-(void) reauthThroughFacebook {
if (!self.facebookSession.isOpen && self.facebookSession.state == FBSessionStateCreatedTokenLoaded) {
[self.facebookSession openWithBehavior: FBSessionLoginBehaviorWithNoFallbackToWebView
completionHandler: self.stateHandler];
}
if (self.facebookSession.isOpen) {
[self.facebookSession reauthorizeWithPermissions: self.userPermissions
behavior: FBSessionLoginBehaviorForcingWebView
completionHandler:^(FBSession *session, NSError* error){
if (self.facebookSession == session) {
[self completedReauthWithSuccess:(error == nil) error:error];
}
}];
} else {
[self completedReauthWithSuccess:NO error:[NSError errorWithDomain: @"No active session found."
code: FBErrorInvalid userInfo: nil]];
}
}
また、どのように私は、ユーザーの電子メールアドレスが自動移入されていることを確認し、それを変更するユーザーフォームをブロックするには?これらのプロパティを設定するには、facebook sdk内のウェブビューにアクセスできますか?
再認証は、ログインと同じ権限で行われている場合最後に、何がアクセストークンと有効期限はどうなるの?
ありがとうございました。
私は同じことを思っています。 sdk 3.1では、reauthorizeWithPermissions:behavior:completionHandler:メソッドも非推奨になっているようです。私は – Kevlar