Аутентификация с помощью кеша или через LoginWebViewController завершается ошибкой:
" https://i.instagram.com/api/v1/accounts/current_user/.\nНеверный ответ. \ nПроцессор обработки вернул nil
. \ n405"
Измените метод UsersHandler CurrentUser из сообщения, чтобы получить
func current(delay: ClosedRange<Double>?, completionHandler: <strong i="6">@escaping</strong> (Result<User, Error>) -> Void) {
guard let storage = handler.response?.storage else {
return completionHandler(.failure(GenericError.custom("Invalid
Authentication.Response in
APIHandler.respone`. Авторизуйтесь снова. ")))
}
// let body = ["_uuid": handler.settings.device.deviceGuid.uuidString,
// "_uid": storage.dsUserId,
// "_csrftoken": storage.csrfToken]
requests.request(User.self,
method: .get,
endpoint: Endpoint.Accounts.current,
//body: .parameters(body),
delay: delay,
process: { User(rawResponse: $0.user) },
completion: completionHandler)
}`
Измените метод UsersHandler CurrentUser из сообщения, чтобы получить
func current(delay: ClosedRange<Double>?, completionHandler: <strong i="7">@escaping</strong> (Result<User, Error>) -> Void) { guard let storage = handler.response?.storage else { return completionHandler(.failure(GenericError.custom("Invalid
Authentication.Responsein
APIHandler.respone`. Авторизуйтесь снова. ")))
}
// let body = ["_uuid": handler.settings.device.deviceGuid.uuidString,
// "_uid": storage.dsUserId,
// "_csrftoken": storage.csrfToken]requests.request(User.self, method: .get, endpoint: Endpoint.Accounts.current, //body: .parameters(body), delay: delay, process: { User(rawResponse: $0.user) }, completion: completionHandler) }`
Я пробовал это на основе вашего решения, но похоже, что это не работает
Измените метод UsersHandler CurrentUser из сообщения, чтобы получить
func current(delay: ClosedRange<Double>?, completionHandler: <strong i="8">@escaping</strong> (Result<User, Error>) -> Void) { guard let storage = handler.response?.storage else { return completionHandler(.failure(GenericError.custom("Invalid
Authentication.Responsein
APIHandler.respone`. Авторизуйтесь снова. ")))
}
// let body = ["_uuid": handler.settings.device.deviceGuid.uuidString,
// "_uid": storage.dsUserId,
// "_csrftoken": storage.csrfToken]requests.request(User.self, method: .get, endpoint: Endpoint.Accounts.current, //body: .parameters(body), delay: delay, process: { User(rawResponse: $0.user) }, completion: completionHandler) }`
Я пробовал это на основе вашего решения, но похоже, что это не работает
Этот у меня работает ..
Если вы используете поды, вам может потребоваться пересобрать проект, очистив сначала все (команда-shift-K) или очистив производные данные.
Измененные строки находятся в файле UserHandler.swift, начиная со строки 13.
Измените метод UsersHandler CurrentUser из сообщения, чтобы получить
func current(delay: ClosedRange<Double>?, completionHandler: <strong i="7">@escaping</strong> (Result<User, Error>) -> Void) { guard let storage = handler.response?.storage else { return completionHandler(.failure(GenericError.custom("Invalid
Authentication.Responsein
APIHandler.respone`. Авторизуйтесь снова. ")))
}
// let body = ["_uuid": handler.settings.device.deviceGuid.uuidString,
// "_uid": storage.dsUserId,
// "_csrftoken": storage.csrfToken]requests.request(User.self, method: .get, endpoint: Endpoint.Accounts.current, //body: .parameters(body), delay: delay, process: { User(rawResponse: $0.user) }, completion: completionHandler) }`
Спасибо @alperalb , работай на меня.
Измените метод UsersHandler CurrentUser из сообщения, чтобы получить
func current(delay: ClosedRange<Double>?, completionHandler: <strong i="9">@escaping</strong> (Result<User, Error>) -> Void) { guard let storage = handler.response?.storage else { return completionHandler(.failure(GenericError.custom("Invalid
Authentication.Responsein
APIHandler.respone`. Авторизуйтесь снова. ")))
}
// let body = ["_uuid": handler.settings.device.deviceGuid.uuidString,
// "_uid": storage.dsUserId,
// "_csrftoken": storage.csrfToken]requests.request(User.self, method: .get, endpoint: Endpoint.Accounts.current, //body: .parameters(body), delay: delay, process: { User(rawResponse: $0.user) }, completion: completionHandler) }`
Я пробовал это на основе вашего решения, но похоже, что это не работает
Этот у меня работает ..
Если вы используете поды, вам может потребоваться пересобрать проект, очистив сначала все (команда-shift-K) или очистив производные данные.
Измененные строки находятся в файле UserHandler.swift, начиная со строки 13.
Спасибо, очищаю производные данные и все работает нормально.
Спасибо @alperalb , я обновил код в 2.3.3
. \
Однако имейте в виду, что SwiftyInsta больше не поддерживается активно, поэтому, хотя это было легко исправить, в будущем он может перестать работать.
Спасибо за быстрое обновление. Довольно печально, что он не поддерживается активно, имхо, это лучший быстрый фреймворк для Instagram на данный момент, и было бы пустой тратой позволить ему умереть.
@sbertix рад помочь с обслуживанием. Где анонс?
Пришлось использовать pod 'SwiftyInsta', :git => 'https://github.com/TheM4hd1/SwiftyInsta', :branch => 'master'
@sbertix помечен ли релиз?
Спасибо за быстрое обновление. Довольно печально, что он не поддерживается активно, имхо, это лучший быстрый фреймворк для Instagram на данный момент, и было бы пустой тратой позволить ему умереть.
В текущей реализации было слишком много "проблем", требующих в будущем полностью чистого листа @ biox86
Когда я писал SwiftyInsta 2.0
, я делал это таким образом, чтобы он оставался «аутентичным» исходной реализации, которая, по сути, была портированием.
С тех пор Swift сильно изменился, и многие функции просто не могут быть добавлены в кодовую базу, например, отмена запроса, поддержка нескольких хранилищ для ответов аутентификации, аутентификация рабочего имени пользователя и пароля, поддержка объединения , пользовательская аутентификация и т. Д.
Итак, я начал новый проект, используя современные Swift, Swiftagram , более простые в использовании и способные исправить все вышеперечисленные проблемы. Начать с нуля действительно было необходимостью.
@sbertix рад помочь с обслуживанием. Где анонс?
Официальных анонсов нет. Время от времени я напоминал людям, когда приходили новые выпуски.
Пока я работаю над Swiftagram , я все еще собираюсь исправлять критические проблемы (например, эту), но я не буду продвигать здесь новые функции или улучшения (например, я не собираюсь переносить Swiftagram BasicAuthenticator
для рабочего входа в систему, не основанного на веб-представлении, или его функций Combine ).
Если вы инвестировали в SwiftyInsta и хотите внести свой вклад через PR и поддерживать его в активном состоянии, добро пожаловать на @mycroftcanner.
Пришлось использовать
pod 'SwiftyInsta', :git => 'https://github.com/TheM4hd1/SwiftyInsta', :branch => 'master'
@sbertix помечен ли релиз?
Ага. Все помечено, версия пакета обновлена… 🤔
Я не уверен, зачем это нужно.
Самый полезный комментарий
Спасибо @alperalb , я обновил код в
2.3.3
. \Однако имейте в виду, что SwiftyInsta больше не поддерживается активно, поэтому, хотя это было легко исправить, в будущем он может перестать работать.