Невозможно вызвать 'authenticate' со списком аргументов типа '(пользователь: String, пароль: String)' - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь добавить реферальную программу в приложение, которое разрабатываю. Первый шаг для меня - это отправлять пользователям SMS-сообщения с имеющегося у меня номера телефона. Для этого я использую Twilio и Alamofire, но получаю эту ошибку: Невозможно вызвать «authenticate» со списком аргументов типа «(user: String, password: String)». Я удалил свои токены из своего кода, и вот оно (я импортирую UIKit, Alamofire и Foundation):

func sendMessage() {
    if let accountSID = ProcessInfo.processInfo.environment["TWILIO_ACCOUNT_SID"],
       let authToken = ProcessInfo.processInfo.environment["TWILIO_AUTH_TOKEN"] {

      let url = "https://api.twilio.com/2010-04-01/Accounts/\(accountSID)/Messages"
      let parameters = ["From": "YOUR_TWILIO_NUMBER", "To": "YOUR_PERSONAL_NUMBER", "Body": "Hello from Swift!"]

      AF.request(url, method: .post, parameters: parameters)
        .authenticate(user: accountSID, password: authToken)
        .responseJSON { response in
          debugPrint(response)
      }

      RunLoop.main.run()
    }
}

Ответы [ 2 ]

1 голос
/ 30 апреля 2020

добро пожаловать на борт.

Я думаю, проблема в том, что аргументы accountSID и authToken не считаются строковыми переменными.

Может быть, вы должны привести его в свое состояние, например что:

if let accountSID = ProcessInfo.processInfo.environment["TWILIO_ACCOUNT_SID"] as? String,
       let authToken = ProcessInfo.processInfo.environment["TWILIO_AUTH_TOKEN"] as? String {

У вас нет предупреждения в вашем коде?

0 голосов
/ 30 апреля 2020

Скорее всего, вы работаете с более старым учебником. authenticate(user:password:) был переименован в authenticate(username:password:) в Alamofire 5.

...