2010-05-14 95 views
0

我正在開發一個iPhone應用程序,它將發送短信登錄用戶朋友'。我正在使用FacebookConnect。問題是我得到所有朋友的uid,但發送短信給這些uid(朋友UID)的方式是什麼。Facebook連接發送短信給Facebook好友

感謝, UPT


請對下面的代碼一看,我不能夠將消息發送給朋友: 得到朋友UID:

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

// sessionView = session;

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

在委託:

- (空)要求:(FBRequest *)要求didLoad:(ID)導致

//做下面的代碼:

如果(@」 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]; 
    } 

和SMS.canSend: 如果(@「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]; 
} 

但是這並沒有被調用。 請幫忙給短信朋友。

回答

1

首先,你需要檢查用戶是否可以發送短信-S,如果你被允許:

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

要問擴展權限,你會打電話給這樣的事情(http://developers.facebook.com/docs/reference/fql/permissions

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

如果用戶已啓用短信爲您的應用程序,你可以發送郵件使用

短信

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

有關示例如何調用通過iPhone去這裏Facebook的API方法:http://github.com/facebook/facebook-iphone-sdk/#readme

編輯我的職務也回答張貼作爲回答

你的錯誤的附加問題海報在這裏,你正在嘗試使用==運算符比較字符串。

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

這比較了兩個字符串的地址。爲了比較,如果字符串的內容都是平等的,你應該使用isEqualToString方法:

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

對不起這樣愚蠢的錯誤。但通過恢復這個變化仍然不會進入如果.. – UPT 2010-05-18 10:01:13