4

Facebook iOS 統合を 2.x SDK から 3.x SDK にアップグレードすると、以前にログインしていたユーザーは自動的にログアウトされます。 SDK。

ワンタイム認証の移行として、以前手動で保存していたアクセス トークンと有効期限を使用して 3.x SDK を強制的に認証する方法はありますか?

前もって感謝します!

4

2 に答える 2

4

最後にそれを理解しました。解決策には、それらが提供するFBSessionTokenCachingStrategyオブジェクト、特にFBSessionManualTokenCachingStrategyを使用することが含まれます。

if (isUserUpgrading) {
   FBSessionTokenCachingStrategy *strategy = [[[FBSessionManualTokenCachingStrategy alloc] initWithUserDefaultTokenInformationKeyName:nil] autorelease];
   strategy.accessToken = [[NSUserDefaults standardUserDefaults] stringForKey:@"FBSessionToken"];         // use your own UserDefaults key
   strategy.expirationDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"FBSessionExpiration"]; // use your own UserDefaults key
   FBSession *session = [[[FBSession alloc] initWithAppID:@"MY_APP_ID"                                    // use your own appId
                                              permissions:nil
                                          urlSchemeSuffix:nil
                                       tokenCacheStrategy:strategy] autorelease];
   [FBSession setActiveSession:session];
} else {
   [FBSession openActiveSessionWithReadPermissions:...];  // normal authentication
}
于 2012-11-15T21:48:09.203 に答える
0

Facebook SDK 3.1.1 の場合、FBSessionTokenCachingStrategy のサブクラスであり、fetchTokenInformation メソッドを次のように定義する新しいクラス FBSessionManualTokenCachingStrategy を作成する必要がありました。

   - (NSDictionary*)fetchTokenInformation; {
     return [NSDictionary dictionaryWithObjectsAndKeys:
        self.accessToken, FBTokenInformationTokenKey,
        self.expirationDate, FBTokenInformationExpirationDateKey,
        nil];
   }
于 2012-12-19T21:52:50.853 に答える