Swiftyinsta: La connexion a cessé de fonctionner

Créé le 23 juil. 2020  ·  12Commentaires  ·  Source: TheM4hd1/SwiftyInsta

L'authentification avec le cache ou via LoginWebViewController échoue avec l'erreur :
" https://i.instagram.com/api/v1/accounts/current_user/.\nRéponse invalide.\nLe gestionnaire de traitement a renvoyé nil .\n405"

bug

Commentaire le plus utile

Merci @alperalb , j'ai mis à jour le code en 2.3.3 .\
Veuillez garder à l'esprit, cependant, que SwiftyInsta n'est plus activement maintenu, donc même s'il s'agissait d'une solution facile, il pourrait cesser de fonctionner à l'avenir.

Tous les 12 commentaires

Changer la méthode UsersHandler CurrentUser de post pour obtenir

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 Authentification.Réponse in APIHandler.respone`. Connectez-vous à nouveau.")))
}
// 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)
}`

Changer la méthode UsersHandler CurrentUser de post pour obtenir

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 Authentification.Réponse in APIHandler.respone`. Connectez-vous à nouveau.")))
}
// 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)
}`

Je l'ai essayé en fonction de votre solution, mais cela ne semble pas fonctionner

Changer la méthode UsersHandler CurrentUser de post pour obtenir
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 Authentification.Réponse in APIHandler.respone`. Connectez-vous à nouveau.")))
}
// 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)
}`

Je l'ai essayé en fonction de votre solution, mais cela ne semble pas fonctionner

Celui-ci fonctionne pour moi..
Si vous utilisez des pods, vous devrez peut-être reconstruire le projet, en nettoyant tout d'abord (commande-maj-K) ou en nettoyant les données dérivées.
Les lignes modifiées se trouvent dans le fichier UserHandler.swift, à partir de la ligne 13

Changer la méthode UsersHandler CurrentUser de post pour obtenir

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 Authentification.Réponse in APIHandler.respone`. Connectez-vous à nouveau.")))
}
// 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)
}`

Merci @alperalb , travaillez pour moi.

Changer la méthode UsersHandler CurrentUser de post pour obtenir
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 Authentification.Réponse in APIHandler.respone`. Connectez-vous à nouveau.")))
}
// 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)
}`

Je l'ai essayé en fonction de votre solution, mais cela ne semble pas fonctionner

Celui-ci fonctionne pour moi..
Si vous utilisez des pods, vous devrez peut-être reconstruire le projet, en nettoyant tout d'abord (commande-maj-K) ou en nettoyant les données dérivées.
Les lignes modifiées se trouvent dans le fichier UserHandler.swift, à partir de la ligne 13

Merci, j'efface les données dérivées et cela fonctionne normalement.

Merci @alperalb , j'ai mis à jour le code en 2.3.3 .\
Veuillez garder à l'esprit, cependant, que SwiftyInsta n'est plus activement maintenu, donc même s'il s'agissait d'une solution facile, il pourrait cesser de fonctionner à l'avenir.

Merci pour la mise à jour rapide. C'est assez triste qu'il ne soit pas activement maintenu, à mon humble avis, c'est le meilleur framework Instagram rapide pour le moment et ce serait un gâchis de le laisser mourir.

@sbertix heureux d'aider à la maintenance. Où est l'annonce ?

J'ai dû utiliser pod 'SwiftyInsta', :git => 'https://github.com/TheM4hd1/SwiftyInsta', :branch => 'master'

@sbertix est la sortie taguée ?

Merci pour la mise à jour rapide. C'est assez triste qu'il ne soit pas activement maintenu, à mon humble avis, c'est le meilleur framework Instagram rapide pour le moment et ce serait un gâchis de le laisser mourir.

Il y avait trop de "problèmes" avec la mise en œuvre actuelle, nécessitant une ardoise complètement vierge à l' avenir

Quand j'ai écrit SwiftyInsta 2.0 , je l'ai fait de manière à ce qu'il soit toujours "authentique" par rapport à l'implémentation d'origine, qui était essentiellement un portage.

Swift a beaucoup changé depuis lors et de nombreuses fonctionnalités ne peuvent tout simplement pas être ajoutées à la base de code, par exemple l'annulation d'une demande, la prise en charge du multi-stockage pour les réponses d'authentification, une authentification par nom d'utilisateur et mot de passe, la prise en charge de Combine , l'authentification personnalisée, etc.

J'ai donc commencé un nouveau projet en utilisant Swift, Swiftagram , plus facile à utiliser et capable de résoudre tous les problèmes ci-dessus. Partir de zéro était vraiment une nécessité.

@sbertix heureux d'aider à la maintenance. Où est l'annonce ?

Aucune annonce officielle. Je rappelais aux gens de temps en temps quand de nouveaux numéros étaient envoyés.

Comme je travaille sur Swiftagram , je vais toujours résoudre des problèmes critiques (comme celui-ci), mais je ne proposerai pas de nouvelles fonctionnalités ou améliorations ici (par exemple, je ne vais pas porter Swiftagram BasicAuthenticator pour une connexion fonctionnelle non basée sur une vue Web, ou ses fonctionnalités de combinaison ).

Si vous êtes investi dans SwiftyInsta et que vous souhaitez contribuer via les reste actif, vous êtes plus que bienvenu @mycroftcanner

J'ai dû utiliser pod 'SwiftyInsta', :git => 'https://github.com/TheM4hd1/SwiftyInsta', :branch => 'master'

@sbertix est la sortie taguée ?

Ouais. Tout est étiqueté et la version du pod a été mise à jour… 🤔
Je ne sais pas pourquoi ça ferait ça.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

canaksoy picture canaksoy  ·  6Commentaires

sbertix picture sbertix  ·  3Commentaires

effecttwins picture effecttwins  ·  16Commentaires

rmelnik7777 picture rmelnik7777  ·  19Commentaires

sbertix picture sbertix  ·  27Commentaires