Swiftyinsta: Login funktioniert nicht mehr

Erstellt am 23. Juli 2020  ·  12Kommentare  ·  Quelle: TheM4hd1/SwiftyInsta

Die Authentifizierung mit Cache oder über LoginWebViewController schlägt mit Fehler fehl:
" https://i.instagram.com/api/v1/accounts/current_user/.\nUngültige Antwort.\nVerarbeitungshandler hat nil .\n405"

bug

Hilfreichster Kommentar

Danke @alperalb , ich habe den Code in 2.3.3 aktualisiert.\
Beachten Sie jedoch, dass

Alle 12 Kommentare

Ändern Sie die Methode UsersHandler CurrentUser von post in get

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`. Nochmal anmelden.")))
}
// 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)
}`

Ändern Sie die Methode UsersHandler CurrentUser von post in get

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`. Nochmal anmelden.")))
}
// 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)
}`

Ich habe es basierend auf deiner Lösung versucht, aber es scheint nicht zu funktionieren

Ändern Sie die Methode UsersHandler CurrentUser von post in get
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`. Nochmal anmelden.")))
}
// 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)
}`

Ich habe es basierend auf deiner Lösung versucht, aber es scheint nicht zu funktionieren

Dieser funktioniert bei mir..
Wenn Sie Pods verwenden, müssen Sie möglicherweise das Projekt neu erstellen, zuerst alle bereinigen (Befehl-Umschalt-K) oder abgeleitete Daten bereinigen.
Geänderte Zeilen befinden sich in der Datei UserHandler.swift, beginnend mit Zeile 13

Ändern Sie die Methode UsersHandler CurrentUser von post in get

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`. Nochmal anmelden.")))
}
// 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)
}`

Danke @alperalb , arbeite für mich.

Ändern Sie die Methode UsersHandler CurrentUser von post in get
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`. Nochmal anmelden.")))
}
// 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)
}`

Ich habe es basierend auf deiner Lösung versucht, aber es scheint nicht zu funktionieren

Dieser funktioniert bei mir..
Wenn Sie Pods verwenden, müssen Sie möglicherweise das Projekt neu erstellen, zuerst alle bereinigen (Befehl-Umschalt-K) oder abgeleitete Daten bereinigen.
Geänderte Zeilen befinden sich in der Datei UserHandler.swift, beginnend mit Zeile 13

Danke, ich lösche die abgeleiteten Daten und es funktioniert normal.

Danke @alperalb , ich habe den Code in 2.3.3 aktualisiert.\
Beachten Sie jedoch, dass

Danke für das schnelle Update. Es ist ziemlich traurig, dass es nicht aktiv gepflegt wird, imho ist es das derzeit beste schnelle Instagram-Framework und es wäre eine Verschwendung, es sterben zu lassen.

@sbertix hilft gerne bei der Wartung. Wo ist die Ankündigung?

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

@sbertix ist die Veröffentlichung mit einem Tag versehen?

Danke für das schnelle Update. Es ist ziemlich traurig, dass es nicht aktiv gepflegt wird, imho ist es das derzeit beste schnelle Instagram-Framework und es wäre eine Verschwendung, es sterben zu lassen.

Es gab zu viele "Probleme" bei der aktuellen Implementierung, die für die Zukunft eine völlig @ biox86

Als ich SwiftyInsta 2.0 , habe ich es so gemacht, dass es immer noch "authentisch" zur ursprünglichen Implementierung ist, die im Grunde eine Portierung war.

Swift geändert seitdem viel und viele Funktionen kann einfach nicht auf die Code - Basis, zB Aufhebungs eine Anfrage, Multi-Speicher - Unterstützung für die Authentifizierung Antworten, Arbeits Benutzername und Passwort - Authentifizierung, Kombinieren Unterstützung, benutzerdefinierte Authentifizierung etc. hinzugefügt werden

Also habe ich ein neues Projekt mit modernem Swift, Swiftagram ,

@sbertix hilft gerne bei der Wartung. Wo ist die Ankündigung?

Keine offiziellen Ankündigungen. Ich würde die Leute hin und wieder daran erinnern, wenn neue Ausgaben eingesandt wurden.

Während ich an Swiftagram arbeite , werde ich immer noch kritische Probleme beheben (wie dieses), aber ich werde hier keine neuen Funktionen oder Verbesserungen vorantreiben (zum Beispiel werde ich portieren BasicAuthenticator für eine funktionierende, nicht auf der Webansicht basierende Anmeldung oder ihre Combine- Funktionen).

Wenn Sie in SwiftyInsta investiert sind, und wollen durch PRs beizutragen, und halten diese aktiv ist , sind Sie mehr als willkommen @mycroftcanner

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

@sbertix ist die Veröffentlichung mit einem Tag versehen?

Ja. Alles markiert und Pod-Version aktualisiert…
Ich bin mir nicht sicher, warum es das tun sollte.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

sbertix picture sbertix  ·  8Kommentare

trentona picture trentona  ·  3Kommentare

anonrig picture anonrig  ·  3Kommentare

sbertix picture sbertix  ·  27Kommentare

reefer picture reefer  ·  18Kommentare