2016-09-08 4 views
0

Я пытаюсь интегрировать вход в Facebook и многое другое в свое приложение, но у меня много трудностей, потому что в Swift нет документации. Я пытаюсь использовать этот код:Facebook SDK в Swift

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] 
       initWithGraphPath:@"/me" 
      parameters:@{ @"fields": @"id,name,friends,birthday,gender,first_name,last_name,friendlists,picture",} 
      HTTPMethod:@"GET"]; 
      [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
      // Insert your code here 
      }]; 

Любая идея, что это будет в Swift?

ответ

0
FBSDKGraphRequest(graphPath: "me", 
    parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email, gender"]) 
    .startWithCompletionHandler({ (connection, result, error) -> Void in 

}) 
+0

Спасибо, но теперь я пытаюсь напечатать (результат [ «имя»]) и получаю сообщение об ошибке с указанием «неоднозначное использование подстрочный» – user3255746

+0

вы должны привести его к 'NSDictionary' или' [String: AnyObject] 'сначала – Shubhank

0
//MARK: - Functions Fb Logic 
    func signInWithFacebook() 
    { 
     if (FBSDKAccessToken.currentAccessToken() != nil) { 
      // User is already logged in, do work such as go to next view controller. 
      print("already logged in ") 
      returnUserData() 
      return 
     } 

     let faceBookLoginManger = FBSDKLoginManager() 
     faceBookLoginManger.logInWithReadPermissions(["public_profile", "email"], fromViewController:nil, handler: { (result, error)-> Void in 
      //result is FBSDKLoginManagerLoginResult 
      if (error != nil) { 
       print("error is \(error)") 
      } else if (result.isCancelled) { 
       //handle cancelations 
      } else if result.grantedPermissions.contains("email") { 
       self.returnUserData() 
      } 
     }) 
    } 

    func returnUserData() { 

     if((FBSDKAccessToken.currentAccessToken()) != nil){ 
      FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, email"]).startWithCompletionHandler({ (connection, result, error) -> Void in 
       if ((error) != nil) { 
        // Process error 
        print("Error: \(error)") 
       } else { 
        let accessToken = FBSDKAccessToken.currentAccessToken().tokenString 
        print("the access token is \(accessToken)") 

        let userID = result.valueForKey("id") as! NSString 
        let facebookProfileUrl = "http://graph.facebook.com/\(userID)/picture?type=large" 

        print("facebookProfileUrl: \(facebookProfileUrl)") 
        print("fetched user: \(result)") 
       } 
      }) 
     } 
    } 
Смежные вопросы