Swiftyinsta: Login parou de funcionar

Criado em 23 jul. 2020  ·  12Comentários  ·  Fonte: TheM4hd1/SwiftyInsta

A autenticação com cache ou via LoginWebViewController falha com erro:
" https://i.instagram.com/api/v1/accounts/current_user/.\nResposta inválida. \ nO manipulador de processamento retornou nil . \ n405"

bug

Comentários muito úteis

Obrigado @alperalb , atualizei o código em 2.3.3 . \
Por favor, tenha em mente, porém, que o SwiftyInsta não está mais sendo mantido ativamente, então, embora tenha sido uma solução fácil, ele pode parar de funcionar no futuro.

Todos 12 comentários

Altere o método UsersHandler CurrentUser da postagem para obter

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`. Faça login novamente. ")))
}
// 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)
}`

Altere o método UsersHandler CurrentUser da postagem para obter

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`. Faça login novamente. ")))
}
// 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)
}`

Eu tentei com base na sua solução, mas não parece funcionar

Altere o método UsersHandler CurrentUser da postagem para obter
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`. Faça login novamente. ")))
}
// 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)
}`

Eu tentei com base na sua solução, mas não parece funcionar

Este está funcionando para mim ..
Se você estiver usando pods, pode ser necessário reconstruir o projeto, limpando tudo primeiro (command-shift-K) ou limpando os dados derivados.
As linhas alteradas estão no arquivo UserHandler.swift, começando na linha 13

Altere o método UsersHandler CurrentUser da postagem para obter

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`. Faça login novamente. ")))
}
// 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)
}`

Obrigado @alperalb , trabalhe para mim.

Altere o método UsersHandler CurrentUser da postagem para obter
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`. Faça login novamente. ")))
}
// 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)
}`

Eu tentei com base na sua solução, mas não parece funcionar

Este está funcionando para mim ..
Se você estiver usando pods, pode ser necessário reconstruir o projeto, limpando tudo primeiro (command-shift-K) ou limpando os dados derivados.
As linhas alteradas estão no arquivo UserHandler.swift, começando na linha 13

Obrigado, eu limpo os dados derivados e funciona normalmente.

Obrigado @alperalb , atualizei o código em 2.3.3 . \
Por favor, tenha em mente, porém, que o SwiftyInsta não está mais sendo mantido ativamente, então, embora tenha sido uma solução fácil, ele pode parar de funcionar no futuro.

Obrigado pela atualização rápida. É muito triste que ele não seja mantido ativamente, porém, é o melhor framework para Instagram rápido no momento e seria um desperdício deixá-lo morrer.

@sbertix feliz em ajudar na manutenção. Onde está o anúncio?

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

@sbertix é o lançamento marcado?

Obrigado pela atualização rápida. É muito triste que ele não seja mantido ativamente, porém, é o melhor framework para Instagram rápido no momento e seria um desperdício deixá-lo morrer.

Havia muitos "problemas" com a implementação atual, exigindo uma lousa totalmente limpa no futuro @ biox86

Quando escrevi SwiftyInsta 2.0 , fiz isso de uma maneira que ainda seria "autêntica" em relação à implementação original, que era basicamente uma portabilidade.

Swift mudou muito desde então e muitos recursos simplesmente não podem ser adicionados à base de código, por exemplo, cancelamento de uma solicitação, suporte de multi-armazenamento para respostas de autenticação, autenticação de nome de usuário e senha de trabalho, suporte combinado , autenticação personalizada, etc.

Então, comecei um novo projeto usando o moderno Swift, Swiftagram , mais fácil de usar e capaz de corrigir todos os problemas acima. Começar do zero era realmente uma necessidade.

@sbertix feliz em ajudar na manutenção. Onde está o anúncio?

Sem anúncios oficiais. De vez em quando, gostaria de lembrar às pessoas quando novas edições eram enviadas.

Como estou trabalhando no Swiftagram , ainda vou consertar problemas críticos (como este), mas não vou lançar novos recursos ou melhorias aqui (por exemplo, não vou portar o BasicAuthenticator para um login não baseado em visualização na web ou seus recursos Combine ).

Se você investiu no SwiftyInsta e deseja contribuir por meio de RPs e mantê-lo ativo, é mais do que bem-vindo @mycroftcanner

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

@sbertix é o lançamento marcado?

Sim. Tudo marcado e a versão do pod atualizada… 🤔
Não tenho certeza por que faria isso.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

sbertix picture sbertix  ·  8Comentários

sbertix picture sbertix  ·  3Comentários

anonrig picture anonrig  ·  3Comentários

trentona picture trentona  ·  3Comentários

reefer picture reefer  ·  18Comentários