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)
}
}