2017-10-04 9 views
0

iOS 11では、FBSDKLoginKitとFBSDKCoreKitを使用しているときに新しいログインフローが表示されています。私はアップルの最近の変化がアプリ同士がどのように話すのかを理解しています:フェイスブックの資格情報は、まず認証フロー中にサファリを通らなければならないことを意味します...しかし何らかの理由で私は以下のアラートダイアログを見ていますfacebook.comに直接行くことができて、ネイティブのFacebookアプリで認証するか、のどちらかで電子メール/パスワードでログインすることができます(2番目のスクリーンショットを参照)。スクリーンショット)。私は私のアプリでこの流れを見ているが、Facebookのログインを実装しています私が見てきたほとんどすべての他のアプリ上の異なる流れを見ていますなぜiOS上の新しいFacebookのログインリダイレクトフロー

は誰でも知っていますか?私はhttps://developers.facebook.com/docs/facebook-login/iosに記載されているフローに従ったので、私はかなり困惑しています。前もって感謝します。

Login screen for FB iOS SDK enter image description here enter image description here

+0

あなたは 'loginBehavior'を変更しようとしましたか?アラートが 'SFAuthenticationSession' iOSの11' の一部であることhttps://github.com/facebook/facebook-ios-sdk/blob/master/FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginManager.h#L72を参照してください。認証 – nathan

+0

一顧、@nathanを流し!ありがとう。 'FBSDKLoginBehaviorSystemNative'から' FBSDKLoginBehaviorSystemBrowser'または 'FBSDKLoginBehaviorSystemAccount'に切り替えると、「Facebook Appでログインしていません」ボタンが解消されますが、' SFAuthenticationSession'アラートはまだそこにあります。 'FBSDKLoginBehaviorSystemWeb'に切り替えると' SFAuthenticationSession'アラートが取り除かれますが、まだ「Facebook Appでログイン」ボタンがありません。警告は表示されませんが、「ブライアーアプリ」と同様の「Facebook Appでログイン」ボタンがありますか? – maxhs

+0

ああ、私はあなたがすでに部分的に真のこの他の場所で、@nathan https://stackoverflow.com/questions/45858774/ios-11-facebook-signin-is-showing-an-initial-system-alert – maxhs

答えて

0

あなたはログインマネージャのloginBehaviorを変更してみてください。 https://github.com/facebook/facebook-ios-sdk/blob/master/FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginManager.h#L72を参照してください。そのアラートは、iOS 11のSFAuthenticationSession認証フローの一部です。

/** 
    This is the default behavior, and indicates logging in through the native 
Facebook app may be used. The SDK may still use Safari instead. 
*/ 
case native 
/** 
    Attempts log in through the Safari or SFSafariViewController, if available. 
*/ 
case browser 
/** 
    Attempts log in through the Facebook account currently signed in through 
the device Settings. 
@note If the account is not available to the app (either not configured by user or 
as determined by the SDK) this behavior falls back to \c .native. 
*/ 
case systemAccount 
/** 
    Attempts log in through a modal \c UIWebView pop up 
@note This behavior is only available to certain types of apps. Please check the Facebook 
Platform Policy to verify your app meets the restrictions. 
*/ 
case web 
1

これは意図した動作で、アップル&のFacebookで私に確認しました。それはSafariViewController認証の実装と流れですが、アップル社(システムアラート)&の3番目のスクリーンショットは、おそらく古いバージョンのFacebook SDKを使用しているアプリです。チェックアウトしてくださいthis postあなたが説明したのと同じUXで数週間前にオープンしました。その後、より多くのコメント&が適切なドキュメントにリンクしています。 FBバージョンをダウングレードしない限り、システムアラートが表示されないようにコード内で何も行うことはできません。