短信在线发送服务

时间:2014-03-30 15:42:48

标签: ios service sms

我正在寻找在线短信发送服务,我可以在我的iOS-App中使用。 我的目的是向用户提供的电话号码发送验证码。 在Android中它不是太大的交易,因为我可以通过编程方式发送短信,但在iOS中 我不能。有什么建议吗?

1 个答案:

答案 0 :(得分:5)

在我们的应用中,我们使用http://www.twilio.com/通过iPhone上的服务发送短信,非常棒。

要发送短信,您甚至不需要下载他们的SDK并将其放入您的项目中。它基本上归结为HTTP POST命令,您可以在其中为SMS,邮件正文和API密钥+秘密提供电话号码。

以下是通过Twillio发送短信的方便示例:

- (void)twilloSendSMS:(NSString *)message withQueue:(NSOperationQueue *)queue
           andSID:(NSString *)SID andSecret:(NSString *)secret
    andFromNumber:(NSString *)from andToNumber:(NSString *)to {
    NSLog(@"Sending request.");

    // Build request
    NSString *urlString = [NSString stringWithFormat:@"https://%@:%@@api.twilio.com/2010-04-01/Accounts/%@/SMS/Messages", SID, secret, SID];

    NSURL *url = [NSURL URLWithString:urlString];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setURL:url];
    [request setHTTPMethod:@"POST"];

    // Set up the body
    NSString *bodyString = [NSString stringWithFormat:@"From=%@&To=%@&Body=%@", from, to, message];
    NSData *data = [bodyString dataUsingEncoding:NSUTF8StringEncoding];
    [request setHTTPBody:data];

    [NSURLConnection
     sendAsynchronousRequest:request
     queue:queue
     completionHandler:^(NSURLResponse *response,
                         NSData *data,
                         NSError *error)
     {
         NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
         if ([data length] >0 && error == nil && ([httpResponse statusCode] == 200 ||     [httpResponse statusCode] == 201))
         {

             NSString *receivedString = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
             NSLog(@"Request sent. %@", receivedString);

     }
     else {
             NSString *receivedString = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
             NSLog(@"Request sent. %@", receivedString);
             NSLog(@"Error: %@", error);
     }
 }];
}