Facebook Connect向Facebook好友发送短信

时间:2010-05-14 10:30:47

标签: iphone facebook sms

我正在开发一个iPhone应用程序,它将向已登录的用户朋友发送短信。我正在使用FacebookConnect。问题是我得到了所有朋友的uid,但是向这些uid发送短信的方式是什么(朋友UID)。

谢谢, UPT


请查看以下代码,我无法将消息发送给朋友: 为了得到朋友UID:

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

// sessionView = session;

[[FBRequest requestWithDelegate:self] call:@"facebook.friends.get" params:params];
代表中的

- (void)request:(FBRequest *)request didLoad:(id)result

//执行以下代码:

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

和SMS.canSend:     if(@“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 个答案:

答案 0 :(得分:1)

首先,您需要检查用户是否可以发送SMS-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];

如果用户为您的应用程序启用了SMS,您可以使用

发送短信

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

有关如何通过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])