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