2016-08-01 2 views
2

Я пытаюсь сделать приложение, которое, когда вы нажимаете кнопку, отправляет текстовое сообщение на заданный номер, и я использую Twilio для SMS-сообщений. Проблема в том, что я использую Swift для своего приложения, и сейчас у них нет примеров в swift. Это мой код для отправки сообщения:Twilio Отправить SMS в 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> 

Я знаю, что мои документы правильно .....

Есть ли лучший способ сделать это? Есть ли у кого-нибудь пример?

+2

iOS не позволит вам вставлять имена пользователей/пароли в URL-адрес, поскольку он не защищен. Вам нужно будет добавить заголовок проверки подлинности в ваш запрос. – Paulw11

+0

@ Paulw11 Как мне это сделать? Swift является новым, поэтому в нем не так много обучающих программ –

ответ

1

Matthew, как указано в комментариях выше/мы не рекомендуем отправлять SMS-сообщения из REST API по коду клиента по соображениям безопасности.

Мы предполагаем, что вы заключаете свои учетные данные и отправки SMS в приложении бэкэнд, используя один из доступных вспомогательных библиотек в примерах видели здесь: https://www.twilio.com/docs/api/rest/sending-messages

Один мой коллега на самом деле wrote a post для решения этой проблемы для Android, и похоже, что мы обязательно должны сделать то же самое для Swift, и это будет больше моей скоростью.

[Обновить]: How to send an SMS from Swift post.

Надеюсь, это поможет.

Смежные вопросы