【发布时间】:2011-10-13 13:01:12
【问题描述】:
如何通过 iPhone 应用程序以编程方式发送 SMS 消息?我现在正在使用 Twilio,并且可以正确设置 HTTP 请求、通过服务器进行身份验证并获得响应。
HTTP 标头一定存在一些错误配置,因为我可以从 Twilio 服务器获得响应,但从未传递正确的数据。
我当前的代码在一个通过简单的按钮调用调用的方法中。
- (IBAction)sendButtonPressed:(id)sender {
NSLog(@"Button pressed.");
NSString *kYourTwillioSID = @"AC8c3...f6da3";
NSString *urlString = [NSString stringWithFormat:@"https://AC8c3...6da3:bf...0b7@api.twilio.com/2010-04-01/Accounts/%@/SMS/Messages", kYourTwillioSID];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setValue:@"+18584334333" forHTTPHeaderField:@"From"];
[request setValue:@"+13063707780" forHTTPHeaderField:@"To"];
[request setValue:@"Hello\n" forHTTPHeaderField:@"Body"];
NSError *error;
NSURLResponse *response;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if (!error) {
NSString *response_details = [[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
NSLog(@"%@",response_details);
}
NSLog(@"Request finished %@", error);
【问题讨论】:
-
我认为问题在于您应该使用 POST 字段,而不是 HTTP 标头...我会尽快验证...
-
请注意,不建议使用 Twilio API 直接从 iOS 应用程序发送短信,因为您必须在应用程序中嵌入您的 AccountSid 和 AuthToken,这很容易被反编译而危及您的凭据。使用 Parse 或 Azure 移动服务之类的服务来托管一个简单的服务来发送消息并从您的应用程序中调用它会更加安全。
-
Devin,即使使用 Parse 或 Azure,您也必须将授权令牌放入已编译的应用程序中。
-
queued 的含义?我得到这个回应。
标签: ios objective-c swift sms twilio