Question

Je recherche une documentation ou un exemple de code sur la façon d'envoyer des demandes FQL multi-éléments à Facebook via le SDK iOS. J'ai trouvé des échantillons plus anciens mais ils ne fonctionnent pas pour moi. J'ai peuplé un NSDictionary avec les requêtes et j'essaie d'envoyer la demande via[[FBRequest requestWithDelegate:self] call:@"facebook.fql.multiquery" params:params];, comme indiqué dans les échantillons que j'ai lus, mais je reçois une erreur "Selector non reconnue envoyée à la classe" et je ne trouve pas la méthode "requestwithdelegate" dans fbrequest.h non plus. Est-il obsolète? Une aide à ce sujet serait très appréciée!

Était-ce utile?

La solution

// 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];

Le délégué fbRequestDelegate sera appelé avec la réponse. Selon vos besoins, vous ferez quelque chose comme:

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

L'objet Facebook est créé comme:

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

Plus d'informations sur la façon de configurer cela peuvent être trouvées ici:https://developers.facebook.com/docs/guides/mobile/

Et selon votre requête FQL, vous aurez besoin d'autorisations de l'utilisateur. Voir la liste des autorisations ici:https://developers.facebook.com/docs/authentication/permissions/

Il existe également une console de test pour les requêtes FQL ici:https://developers.facebook.com/docs/reference/rest/fql.query/

Et si vous voulez faire une multi-acteurs au lieu d'une seule requête, cela ressemblerait:

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];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top