最近、アプリのこのアップグレードを行いました。私がこれを行った理由は、iOS 6 のスムーズな流れと、Facebook の将来のサポートが最終的に古い SDK を非推奨にするためでした。大きな変更点は、ログイン フローとグラフを開く呼び出しです。このダイアログは、ウォールへの投稿を要求し、非推奨のヘッダーをまだピギーバックしています。関心のあるメソッドについては、次のように置き換えられます。
[ad.facebook Authorize:perms]
FBSession *session = [[FBSession alloc] initWithAppID:appId
permissions:permissionsArray
urlSchemeSuffix:urlSuffix
tokenCacheStrategy:nil];
[FBSession setActiveSession:session];
if(allowLoginUI == YES)
{
[session openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent completionHandler:handler];
}
else if(session.state == FBSessionStateCreatedTokenLoaded)
{
[session openWithCompletionHandler:^(FBSession *_session, FBSessionState status, NSError *error) {
[self _sessionStateChanged:_session state:status error:error];
}];
}
[session release];
ログインに関する追加の実装手順については、 https:
//developers.facebook.com/docs/howtos/share-appid-across-multiple-apps-ios-sdk/ https://developers.facebook.com/docs/howtos/loginを参照してください
。 -with-facebook-using-ios-sdk/
shouldExtendAccessToken、extendAccessTokenIfNeeded、 - これらはなくなり、facebook SDK はキャッシュを実装し、必要に応じてトークンを拡張します。loginUI が表示されないはずなのに、セッション状態が FBSessionStateCreatedTokenLoaded であった場合、最初のコード スニピットに表示された場合でも、セッションを開きたいと考えています。セッションが FBSessionStateCreatedTokenLoaded 状態の場合、次のことを意味します。
キャッシュされたトークンが読み込まれたことを示す 2 つの初期セッション状態の 1 つ。セッションがこの状態にある場合、open* を呼び出すと、UX やアプリの切り替えなしでセッションが開かれます。
詳細については、SessionLoginSample を確認してください。
isSessionValid - これが現在
FBSession.activeSession.isOpen
dialog:@"feed" andParams:params andDelegate:delegate - これは同じですが、使用する前に次のように facebook インスタンスを作成する必要があります。
Facebook *facebook = [[Facebook alloc] initWithAppId:FBSession.activeSession.appID andDelegate:nil];
facebook.accessToken = FBSession.activeSession.accessToken;
facebook.expirationDate = FBSession.activeSession.expirationDate;
//... normal code to setup a feed post
[facebook dialog:@"feed" andParams:params andDelegate:self];
[facebook release];
詳細については、 https://developers.facebook.com/docs/howtos/feed-dialog-using-ios-sdk/を参照してください
"https://graph.facebook.com/me?fields=id,email,first_name&access_token=", - グラフの呼び出しがより簡単になりました。また、それらを非常に簡単にバッチ処理することもできます。
//[facebook requestWithGraphPath:@"me" andDelegate:self]; would become
[FBRequestConnection startForMeWithCompletionHandler:^
(FBRequestConnection *connection, id result, NSError *error) {}];
//[facebook requestWithGraphPath:@"me/albums" andParams:params andHttpMethod:@"POST" andDelegate:self]; would become
[FBRequestConnection startWithGraphPath:@"me/albums"
parameters:params
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {}];
詳細については、 https://developers.facebook.com/docs/howtos/batch-requests-ios-sdk/を参照してください