2010-05-14 6 views
0

Je développe une application iPhone qui enverra des sms aux utilisateurs connectés. J'utilise FacebookConnect pour la même chose. Le problème est que je reçois l'uid de tous les amis, mais quel est le moyen d'envoyer des SMS à ces uids (amis UID).Facebook Connectez-vous pour envoyer des messages à Facebook Amis

Merci, UPT


S'il vous plaît un coup d'oeil sur le code suivant et je ne suis pas en mesure d'envoyer le message à des amis: Pour UID d'amis:

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

// sessionView = session;

[[FBRequest requestWithDelegate:self] call:@"facebook.friends.get" params:params]; 

déléguer:

- (void) demande: (FBRequest *) demande didLoad: (id) résultat

// faire le code suivant:

if (@ » facebook.friends.get » == request.method) {

NSArray* users = result; 

    myList =[[NSArray alloc] initWithArray: users]; 

    for(NSInteger i=0;i<[users count];i++) { 

     NSDictionary* user = [users objectAtIndex:i]; 

     NSString* uid = [user objectForKey:@"uid"]; 

     //   NSString* fql = [NSString stringWithFormat: 

     //       @"select name from user where uid == %@", uid]; 

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

     //[[FBRequest requestWithDelegate:self] call:@"facebook.fql.query" params:params]; 


     NSDictionary* params = [NSDictionary dictionaryWithObjectsAndKeys:uid, @"uid", @"checkSMSCanSend", @"callback", nil]; 
     [[FBRequest requestWithDelegate:self] call:@"facebook.sms.canSend" params:params]; 
    } 

et SMS.canSend: si (@ "facebook.sms.canSend" == request.method) {

UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"SMS" message:@"User can send SMS successfully." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 
} 

Mais ceci n'est pas appelé. S'il vous plaît aider les SMS des amis.

Répondre

1

D'abord, vous devez vérifier si l'utilisateur peut envoyer des SMS-s et si vous êtes autorisé à:

http://developers.facebook.com/docs/reference/rest/sms.canSend

Pour demander des autorisations étendues vous appelez quelque chose comme ça (http://developers.facebook.com/docs/reference/fql/permissions)

FBPermissionDialog* dialog = [[[FBPermissionDialog alloc] init] autorelease]; 
dialog.delegate = self; 
dialog.permission = @"sms"; 
[dialog show]; 

Si l'utilisateur a activé SMS pour votre application, vous pouvez envoyer un SMS à l'aide

http://developers.facebook.com/docs/reference/rest/sms.send

NSDictionary* params = [NSDictionary dictionaryWithObjects:@"1234", @"uid", @"hellow world", @"message", nil]; 
[[FBRequest requestWithDelegate:self] call:@"facebook.sms.send" params:params]; 

Pour des exemples comment appeler des méthodes de l'API Facebook via iPhone allez ici: http://github.com/facebook/facebook-iphone-sdk/#readme

Modification de mon poste pour répondre également à l'affiche de question supplémentaire publiée en réponse

Votre erreur est ici, vous essayez de comparer les chaînes en utilisant == opérateur.

if (@"facebook.friends.get" == request.method) 

compare les adresses de deux chaînes. Pour comparer si le contenu de la chaîne est égal, vous devez utiliser la méthode isEqualToString:

if([@"facebook.friends.get" isEqualToString:request.method]) 
+0

Désolé pour une telle erreur stupide. Mais en retournant ce changement ne va toujours pas à l'intérieur si .. – UPT

Questions connexes