Kısa bir süre önce bu güncellemeyi uygulamam için yaptım. Bunu yapmamın sebebi, iOS 6 için daha akıcı bir akış ve eski sdk’yi eninde sonunda kullanacakları için facebook’un gelecekteki desteği oldu. Büyük değişiklikler giriş akışı ve açık grafik çağrılarıydı. İletişim kutusu, duvarınızda yayınlanmayı, kullanımdan kaldırılan üstbilgilerden hala piggy geri çağırır.
[ad.facebook Yetkilendir'i: Perma]
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];
giriş
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/
ek uygulama talimatlarının bakın onlar yerini olacağını aşağıdaki şekilde yöntemleri için ilgileniyorsunuz
shouldExtendAccessToken, extendAccessTokenIfNeeded, - bunlar artık gitti ve facebook SDK imple Gerekirse, önbelleğe almayı ve belirteci genişletmeyi sağlar. Eğer loginUI'nin gösterilmemesi gerekiyorsa, ilk kod snippit'imde görüyorsanız, fakat oturum durumu FBSessionStateCreatedTokenLoaded'deyse, hala oturumu açmak istiyorsunuz. oturumunuz durumunda iken anlama gelir FBSessionStateCreatedTokenLoaded: önbelleğe alınmış belirteç yüklü olduğunu belirten iki ilk oturumu durumlarının
Tek; Bir oturum bu durumdayken UX veya uygulama geçişi
kasada daha fazla bilgi için SessionLoginSample olmadan açık bir oturumda , sonuçlanacaktır *, bir çağrı açı[email protected] "Besleme" andParams: -
isSessionValid bu şimdi
FBSession.activeSession.isOpen
iletişim kutusudur parametreler andDelegate: temsilci - bu hala aynı, ancak daha önce böyle facebook örneğini oluşturmak zorunda bunu kullanarak:
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];
fazla bilgi için https://developers.facebook.com/docs/howtos/feed-dialog-using-ios-sdk/ bkz
"https://graph.facebook.com/me?fields=id,email,first_name & access_token =", - Grafik çağrıları artık çok daha basit. Ayrıca bunları kolayca birlikte de yapabilirsiniz.
//[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) {}];
Düşünceli ve ayrıntılı yanıt için teşekkürler - çok yararlı. Bunları doğrulama şansı bulduğumda, bunu doğru yanıt olarak işaretlemeyi tercih ederim. Tekrar teşekkürler. – leontx
Sadece bu işi yapmak zorunda olduğum için merak ediyorum ve ne kadar sürdüğünü merak ettim, bu yüzden iyi bir tahmin verebilirim. Teşekkürler –
@JonathanDixon muhtemelen 2-3 saat değil. Yeni SDK, eski SDK'nın tümünü içerir, bu nedenle bu projeyi parçalara bölebilirsin. Sadece ihtiyacınız olan şeyi değiştirin ve eski sistemi kullanarak geri kalanını bırakın. Sonra yavaşça yükseltin. – odyth