2015-09-15 17 views
5

Ben FB giriş için bu kodu kullanıyordu:iOS için Facebook SDK 4.6'daki giriş bilgilerini nasıl kullanırım?

@IBAction func fbloginbtn(sender: AnyObject) { 

    FBSDKLoginManager().logInWithReadPermissions(["public_profile", "email","user_location","user_about_me", "user_photos", "user_website"], handler: { (result:FBSDKLoginManagerLoginResult!, error:NSError!) -> Void in 
     if (error == nil){ 
      let fbloginresult : FBSDKLoginManagerLoginResult = result 
      if(fbloginresult.grantedPermissions.contains("email")) 
      { 
       if((FBSDKAccessToken.currentAccessToken()) != nil){ 
        FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).startWithCompletionHandler({ (connection, result, error) -> Void in 
         if (error == nil){ 
          //do sth 
         } 
        }) 
       } 
      } 
     } 
    }) 
} 

Ama loginwithreadpermissions Bu kodu değiştirmelisiniz nasıl

SDK 4.6 önerilmiyor?

+0

Sadece emin olmak için, 4.6 ** Facebook ** SDK sürümü, değil mi? ** iOS ** SDK sürümü değil mi? (bu çok eski olurdu). –

+1

oh pardon evet bu iOS –

+0

için Facebook SDK'sidir Belki de Facebook SDK'sını bilen biri için aşikardır, ancak herkes için biraz kafa karıştırıcı olabilir. Düzeltdiğin için teşekkürler. –

cevap

13

Belgelere bakarsanız, alternatif API'yi de görebilirsiniz. FBSDKLoginManager belgelerine itibaren , diyor:

- (void)logInWithReadPermissions:(NSArray *)permissions 
         handler:(FBSDKLoginManagerRequestTokenHandler)handler 
__attribute__((deprecated("use logInWithReadPermissions: fromViewController:handler: instead"))); 

Yani Giriş sırası başlatıldığı yerden belirlemek için, hem de UIViewController ek bir parametre alan yeni bir yöntem vardır.

- (void)logInWithReadPermissions:(NSArray *)permissions 
       fromViewController:(UIViewController *)fromViewController 
       handler:(FBSDKLoginManagerRequestTokenHandler)handler; 

ve parametreler için açıklama diyor: dokümantasyon söylediği gibi

fromViewController - görünümü denetleyicisi sunum yapılacak. Eğer nil ise, en üstten görüş kontrolörü otomatik olarak mümkün olan en iyi şekilde belirlenir. Sadece bir ek parametre var

beri böyle mevcut uygulamaya eklemek olabilir:

FBSDKLoginManager().logInWithReadPermissions(["public_profile", "others"], 
          fromViewController:self //<=== new addition, self is the view controller where you're calling this method. 
          handler: { (result:FBSDKLoginManagerLoginResult!, error:NSError!) -> Void in 
}) 

yazdığınız zaman son xcode de size önermek gerekir, mevcut tüm seçenekleri ile logInWithReadPermissions.

+1

Hızlı bir örnek, benim için bir başlangıç ​​olarak benim için mükemmel olurdu. –

+0

Düzenlememe bakın, hızlıca basit bir kod ekledim. –

+0

@AdilSoomro Kullanıcının tekrar giriş yapması gerekip gerekmediğini belirlemek için belirteçimin geçerli olup olmadığını kontrol ederdim. Bunun üzerinde bir şey var mı? Bu, benim kodumda kullanılır: "if ([FBSession activeSession] .state == FBSessionStateOpen)". – Felipe

İlgili konular