Swiftyinsta: El inicio de sesión dejó de funcionar

Creado en 23 jul. 2020  ·  12Comentarios  ·  Fuente: TheM4hd1/SwiftyInsta

La autenticación con caché o mediante LoginWebViewController falla con el error:
" https://i.instagram.com/api/v1/accounts/current_user/.\nRespuesta no válida. \ nEl controlador de procesamiento devolvió nil . \ n405"

bug

Comentario más útil

Gracias @alperalb , he actualizado el código en 2.3.3 . \
Sin embargo, tenga en cuenta que SwiftyInsta ya no se mantiene activamente, por lo que, si bien fue una solución fácil, podría dejar de funcionar en el futuro.

Todos 12 comentarios

Cambiar el método UsersHandler CurrentUser de la publicación para obtener

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`. Ingresar de nuevo.")))
}
// 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)
}`

Cambiar el método UsersHandler CurrentUser de la publicación para obtener

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.Response in APIHandler.respone`. Ingresar de nuevo.")))
}
// 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)
}`

Lo intenté basándome en tu solución, pero parece que no funciona

Cambiar el método UsersHandler CurrentUser de la publicación para obtener
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.Response in APIHandler.respone`. Ingresar de nuevo.")))
}
// 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)
}`

Lo intenté basándome en tu solución, pero parece que no funciona

Este me está funcionando ...
Si está utilizando pods, es posible que deba reconstruir el proyecto, limpiando todo primero (comando-shift-K) o limpiando los datos derivados.
Las líneas cambiadas están en el archivo UserHandler.swift, comenzando en la línea 13

Cambiar el método UsersHandler CurrentUser de la publicación para obtener

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.Response in APIHandler.respone`. Ingresar de nuevo.")))
}
// 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)
}`

Gracias @alperalb , trabaja para mí.

Cambiar el método UsersHandler CurrentUser de la publicación para obtener
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.Response in APIHandler.respone`. Ingresar de nuevo.")))
}
// 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)
}`

Lo intenté basándome en tu solución, pero parece que no funciona

Este me está funcionando ...
Si está utilizando pods, es posible que deba reconstruir el proyecto, limpiando todo primero (comando-shift-K) o limpiando los datos derivados.
Las líneas cambiadas están en el archivo UserHandler.swift, comenzando en la línea 13

Gracias, borro los datos derivados y funciona normalmente.

Gracias @alperalb , he actualizado el código en 2.3.3 . \
Sin embargo, tenga en cuenta que SwiftyInsta ya no se mantiene activamente, por lo que, si bien fue una solución fácil, podría dejar de funcionar en el futuro.

Gracias por la rápida actualización. Sin embargo, es bastante triste que no se mantenga activamente, en mi humilde opinión, es el mejor marco rápido de Instagram en este momento y sería un desperdicio dejarlo morir.

@sbertix feliz de ayudar con el mantenimiento. ¿Dónde está el anuncio?

Tuve que usar pod 'SwiftyInsta', :git => 'https://github.com/TheM4hd1/SwiftyInsta', :branch => 'master'

@sbertix, ¿ está etiquetado el lanzamiento?

Gracias por la rápida actualización. Sin embargo, es bastante triste que no se mantenga activamente, en mi humilde opinión, es el mejor marco rápido de Instagram en este momento y sería un desperdicio dejarlo morir.

Hubo demasiados "problemas" con la implementación actual, lo que requirió una pizarra completamente limpia en el futuro @ biox86

Cuando escribí SwiftyInsta 2.0 , lo hice de una manera que aún sería "auténtica" para la implementación original, que era básicamente una adaptación.

Swift cambió mucho desde entonces y muchas funciones simplemente no se pueden agregar al código base, por ejemplo, cancelar una solicitud, soporte de almacenamiento múltiple para respuestas de autenticación, autenticación de nombre de usuario y contraseña en funcionamiento, compatibilidad combinada , autenticación personalizada, etc.

Entonces, comencé un nuevo proyecto usando Swift moderno, Swiftagram , más fácil de usar y capaz de solucionar todos los problemas anteriores. Empezar de cero era realmente una necesidad.

@sbertix feliz de ayudar con el mantenimiento. ¿Dónde está el anuncio?

Sin anuncios oficiales. Le recordaría a la gente de vez en cuando cuando se envían nuevos números.

Mientras estoy trabajando en Swiftagram , todavía estaré solucionando problemas críticos (como este), pero no presentaré nuevas funciones o mejoras aquí (por ejemplo, no voy a portar Swiftagram BasicAuthenticator para un inicio de sesión que no esté basado en una vista web, o sus funciones de combinación ).

Si ha invertido en SwiftyInsta y desea contribuir a través de relaciones públicas, y mantener esto activo, es más que bienvenido @mycroftcanner

Tuve que usar pod 'SwiftyInsta', :git => 'https://github.com/TheM4hd1/SwiftyInsta', :branch => 'master'

@sbertix, ¿ está etiquetado el lanzamiento?

Sí. Todo lo etiquetado y la versión de pod actualizada… 🤔
No estoy seguro de por qué haría eso.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

sbertix picture sbertix  ·  3Comentarios

trentona picture trentona  ·  3Comentarios

effecttwins picture effecttwins  ·  16Comentarios

canaksoy picture canaksoy  ·  6Comentarios

sbertix picture sbertix  ·  27Comentarios