logros calorias apple ios facebook facebook-graph-api

calorias - ¿Cómo hacer una lista de los amigos comunes en iOS usando Facebooksdk?



calorias apple watch (1)

He seguido la API gráfica, pero recibo la respuesta como

context = { id = dXNlcl9jb250ZAXh0OgGQ2NxhPU1adsVlI9wHXlABJbFICZC9PYfcDq57EiAdimkf6Um0P7dgco2lU1qdiM98jXp5hXpZCVkjBeN0DHCROSZAjio6JAD7gmkIZCqTxVp6dNwZD; }; id = 1306652987;

}

Mi código es

FBSDKAccessToken *access = [FBSDKAccessToken currentAccessToken]; if (access!=nil) { NSDictionary *params = @{ @"fields": @"context.fields(mutual_friends)", }; /* make the API call */ FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"1306652987" parameters:params HTTPMethod:@"GET"]; [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { NSLog(@"result %@",result); // Handle the result }]; } else { FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; [login logInWithReadPermissions:@[@"public_profile", @"email",@"user_friends"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { if (error) { // Process error } else if (result.isCancelled) { // Handle cancellations } else { ///me/mutualfriends/[OTHER ID]/?fields=name,picture NSDictionary *params = @{ @"fields": @"context.fields(mutual_friends)", }; /* make the API call */ FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"1306652987" parameters:params HTTPMethod:@"GET"]; [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { NSLog(@"result %@",result); // Handle the result }]; if ([result.grantedPermissions containsObject:@"email"]) { NSLog(@"result is:%@",result); } } }]; }

Pero en el gráfico API explorer obtengo el resultado correcto con el nombre y el id de amigos mutuos y el recuento total de amigos comunes, pero no puedo obtener la respuesta completa en mi código


Yo tuve el mismo problema. Cometí el error de usar id / user_id en lugar de la identificación de contexto.

context = { id = dXNlcl9jb250ZAXh0OgGQ2NxhPU1adsVlI9wHXlABJbFICZC9PYfcDq57EiAdimkf6Um0P7dgco2lU1qdiM98jXp5hXpZCVkjBeN0DHCROSZAjio6JAD7gmkIZCqTxVp6dNwZD; }; id = 1306652987;

Entonces debería ser (en Swift)

FBSDKGraphRequest(graphPath: "dXNlcl9jb250ZAXh0OgGQ2NxhPU1adsVlI9wHXlABJbFICZC9PYfcDq57EiAdimkf6Um0P7dgco2lU1qdiM98jXp5hXpZCVkjBeN0DHCROSZAjio6JAD7gmkIZCqTxVp6dNwZD", parameters: nil).startWithCompletionHandler({ (connection, result, error) -> Void in if (error == nil){ //everything works print the user data print(result) } else { print(error.description) } })

¡ADEMÁS! Los amigos comunes DEBEN haber iniciado sesión en la aplicación Y dado el permiso de la aplicación para "user_friends".

Por lo tanto, su nombre de usuario debe verse más o menos así:

let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager() fbLoginManager.logOut() fbLoginManager.logInWithReadPermissions(["email", "user_friends"], fromViewController: self) { (result, error) -> Void in if (error == nil){ let fbloginresult : FBSDKLoginManagerLoginResult = result if(fbloginresult.grantedPermissions.contains("email")) { self.getFBUserData() } } else { print(error.description) } }