Consulta múltiple de Facebook FQL en iOS SDK

Estoy buscando documentación o código de muestra sobre cómo enviar solicitudes fql de múltiples consultas a Facebook a través del SDK de iOS. Encontré algunas muestras más antiguas, pero no me funcionan. He poblado un NSDictionary con las consultas e intento enviar la solicitud a través de [[FBRequest requestWithDelegate:self] call:@"facebook.fql.multiquery" params:params];, como se indica en las muestras que he leído, pero obtengo un error de "selector no reconocido enviado a la clase" y tampoco puedo encontrar el método "requestWithDelegate" en FBRequest.h. ¿Está en desuso? ¡Un poco de ayuda en esto sería muy apreciada!

preguntado el 16 de mayo de 11 a las 19:05

¿Ha revisado el SDK de IOS de Facebook? Esta biblioteca de iOS de código abierto le permite integrar Facebook en su aplicación iOS, incluidos iPhone, iPad y iPod touch. El SDK es liviano y no tiene dependencias externas. Comenzar es relativamente fácil. github.com/facebook/facebook-ios-sdk -

1 Respuestas

// Construct your FQL Query 
NSString* fql = [NSString stringWithFormat:@"SELECT uid, name, hometown_location from user where uid IN (SELECT uid2 FROM friend WHERE uid1=%lld) and hometown_location != '' ORDER BY rand() limit 4", facebookId];

// Create a params dictionary
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObject:fql forKey:@"query"];

// Make the request 
[facebook requestWithMethodName:@"fql.query" andParams:params andHttpMethod:@"GET" andDelegate:self];

El delegado FBRequestDelegate será llamado con la respuesta. Dependiendo de sus necesidades, hará algo como:

- (void)request:(FBRequest*)request didLoad:(id)result {
    NSLog(@"didLoad() received result: %@", result);
}

El objeto de Facebook se crea como:

Facebook * facebook = [[Facebook alloc] initWithAppId:kAppID];

Puede encontrar más información sobre cómo configurar esto aquí: https://developers.facebook.com/docs/guides/mobile/

Y dependiendo de su consulta FQL, necesitará permisos del usuario. Vea la lista de permisos aquí: https://developers.facebook.com/docs/authentication/permissions/

También hay una consola de prueba para consultas FQL aquí: https://developers.facebook.com/docs/reference/rest/fql.query/

Y si desea hacer una consulta múltiple en lugar de una sola consulta, se vería así:

NSString* fql1 = [NSString stringWithFormat:
    @"select uid2 from friend where uid1 == %lld order by rand() limit 10", facebookId];
NSString* fql2 = [NSString stringWithFormat:
    @"select uid, name from user where uid in (select uid2 from #queryID)"];
NSString* fql3 = [NSString stringWithFormat:
    @"select uid, status_id, message from status where uid in (select uid from #queryName) limit 1"];
NSString* fql = [NSString stringWithFormat:
    @"{\"queryID\":\"%@\",\"queryName\":\"%@\",\"queryStatus\":\"%@\"}",fql1,fql2,fql3];

NSDictionary* params = [NSDictionary dictionaryWithObject:fql forKey:@"queries"];   

[facebook call:@"fql.multiquery" params:params];

Respondido el 16 de junio de 11 a las 16:06

¿Qué es queryID y queryName? ¿Puedes explicar un poco? Gracias .... Utilizo consultas múltiples como mencionaste pero devuelve nulo. - Maulik

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.