古い iOS FB SDK (GitHub アカウントでホストされているもの) から .framework (パッケージベースのインストーラー) に移行するためのヒントはありますか? 既存の認証トークンと有効期限オブジェクトを新しい FBSession オブジェクトに対して検証する際に問題が発生しています。
状況は次のとおりです。
古い SDK/手法では、Facebook iOS SDK では認証などを保存する必要がありました。独自のストレージ メカニズムを介して手動でトークンと有効期限を管理します。新しいフレームワーク ベースの SDK では、これが処理されますが、ユーザーを移行する (つまり、ユーザーが再ログインしないようにする) ために、この情報を新しい SDK に提供する必要があります。
結局、Facebook は K-V を NSUserDefaults に保存しており、この情報を保存するために使用する辞書のネストされた K-V のすべてのキーだけでなく、ルート キーの名前も教えてくれます。
彼らのトークン クラスFBSessionTokenCachingStrategy
には、NSDictionary が使用可能な Facebook セッションを確立する適切なディクショナリに対して検証するかどうかを検証するクラス メソッドさえあります。
+ (BOOL)isValidTokenInformation:(NSDictionary*)tokenInformation;
したがって、既存の認証を取得しました。トークンと有効期限、それらを新しい辞書に入れ、適切なキーの場所に保存し、NSUserDefaults を同期します。
これまでのところ、とても良いですよね?FBSession
オブジェクトを初期化したら
- (id)initWithAppID:(NSString*)appID
permissions:(NSArray*)permissions
urlSchemeSuffix:(NSString*)urlSchemeSuffix
tokenCacheStrategy:(FBSessionTokenCachingStrategy*)tokenCachingStrategy;
キー全体が NSUserDefaults から削除され、セッション オブジェクトのstate
プロパティの状態FBSessionStateCreated
(つまり、既存の状態がない) と本来あるべき状態FBSessionStateCreatedTokenLoaded
(つまり、ローカルに保存されたプロパティがあり、オンラインでチェックする準備ができていることがわかっている) になります。
なぜ削除されているのですか?クラスメソッドに対して検証されました。
ありがとう