我试图创建一个应用程序,当您按下按钮时,它会向预设号码发送短信,而我正在使用Twilio来收发短信。问题是我使用Swift作为我的应用程序,他们目前没有swift的例子。这是我发送邮件的代码:
func sendSMS()
{
let twilioSID = "AC11ed62fdb971a8f56d9be531a5ce40c2"
let twilioSecret = "mySecretID"
let fromNumber = "number"
let toNumber = "number"
let message = "This is a test message"
// Build the request
let request = NSMutableURLRequest(URL: NSURL(string:"https://\(twilioSID):\(twilioSecret)@api.twilio.com/2010-04-01/Accounts/\(twilioSID)/SMS/Messages")!)
request.HTTPMethod = "POST"
request.HTTPBody = "From=\(fromNumber)&To=\(toNumber)&Body=\(message)".dataUsingEncoding(NSUTF8StringEncoding)
// Build the completion block and send the request
NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: { (data, response, error) in
print("Finished")
if let data = data, responseDetails = NSString(data: data, encoding: NSUTF8StringEncoding) {
// Success
print("Response: \(responseDetails)")
} else {
// Failure
print("Error: \(error)")
}
}).resume()
}
但每当我尝试运行该功能时,我都会得到这个
Finished
Response: <?xml version='1.0' encoding='UTF-8'?>
<TwilioResponse><RestException><Code>20003</Code><Detail>Your AccountSid or AuthToken was incorrect.</Detail><Message>Authentication Error - No credentials provided</Message><MoreInfo>https://www.twilio.com/docs/errors/20003</MoreInfo><Status>401</Status></RestException></TwilioResponse>
我知道我的证件是正确的.....
有更好的方法吗?有人有例子吗?
答案 0 :(得分:1)
Matthew,正如上面的评论所述/我们不建议您出于安全原因通过客户端代码从REST API发送SMS。
我们建议您使用以下示例中的一个可用帮助程序库在后端应用程序中包装您的凭据并发送SMS: https://www.twilio.com/docs/api/rest/sending-messages
我的一位同事wrote a post为Android社区解决了这个问题,看起来我们应该为Swift做同样的事情,这将更加快速。
[更新] :How to send an SMS from Swift post。
希望这会有所帮助。