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"
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.Responsein
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.Responsein
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.Responsein
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.Responsein
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.
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.