あなたはこのような状況に陥っている可能性があります。それは本当にイライラしています。
Facebook iOS SDK not storing cookies for access
あなたは、あなたがしたい場合は、ログインのためにアプリを使用するiOSのライブラリを強制し、あなたのアプリケーションへのローカルのUIWebViewて許可することができます。こうしてあなたはログインし、使用するクッキーを持っています。既存のFacebookオブジェクトにメソッドを追加する必要があります。通常は、呼び出し:
- (void) authorize:(NSArray *)permissions
delegate:(id<FBSessionDelegate>)delegate
を認可するために、ターンでプライベートメソッドを呼び出している:YESに設定され、両方のパラメータを持つ
- (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth
safariAuth:(BOOL)trySafariAuth
を。
同じプライベート関数を呼び出すが、両方のパラメータをNOに設定したパブリックメソッドを追加したいとします。私はFacebook.mに、このメソッドを追加し、Facebook.hでそれを宣言したので、私はそれを呼び出すことができますが、私が好き:
- (void)authorize:(NSArray *)permissions
tryFBApp:(BOOL) tryFBApp
trySafariAuth:(BOOL) trySafariAuth
delegate:(id<FBSessionDelegate>)delegate {
[_permissions release];
_permissions = [permissions retain];
_sessionDelegate = delegate;
[self authorizeWithFBAppAuth:tryFBApp safariAuth:trySafariAuth];
}
私は地元のNOに設定された2つのBOOLパラメータ、およびライブラリポップアップしていることを呼び出しますUIWebViewは、アプリケーションのために働くクッキーを私に残す。
私のiOSアプリの認証キーはまだ得られますか?またはwebviewsのためにのみ?また、webviewのようにユーザーにログインするように聞こえるように聞こえますか?全体のポイントは、ユーザーにユーザー名とパスワードを入力するのではなく、Facebookブックアプリケーションに依存する新しいfacebookシングルサインオンメソッドを使用することでした。これはSSOをサポートしますか? –
はい、グラフリクエストを行うための有効な認証トークンを取得します。あなたはどこかにサインインする必要があります。そうすれば、クッキーがもう有効でない場合は、ログイン時にログインチャレンジが行われます。認証トークンとCookieを保存したままにして再利用することができます。アクセス許可でオフラインアクセスをリクエストすると、Cookieは長い間有効です。いいえ、これは、FBがディープリンクと呼ぶように、SSOに依存するものとは互換性がありません。毒を選ぶ必要があります。叔母の方法としてFBアプリSSOを使用し、再認証せずにアプリでWebビューを開く方法はありません。 – giff
SSOとの互換性はありません。ユーザは少なくとも1度はあなたのアプリにクレデンシャルを与える必要があります。それのまわりではありません。しかし、私はむしろこれを行い、SSOが利用可能であるという期待を作成するのではなく、すべての認証を1つのチャンクで行うようにします。 – giff