GeovaneSchmitz / sigaa-api

Unofficial high performance API for SIGAA (Sistema Integrado de Gestão de Atividades Acadêmicas) using web scraping.
MIT License
39 stars 11 forks source link

Não funciona com o sigaa da UFRB #31

Open vxfontes opened 1 year ago

vxfontes commented 1 year ago

O sigaa da ufrb tem url: https://sistemas.ufrb.edu.br. Ao tentar apenas efetuar o login, aparece o seguinte erro:

C:\Users\nessa\Desktop\coding\reactjs\sigaa\ok\node_modules\sigaa-api\src\session\login\sigaa-login-ifsc.ts:93 throw new Error(this.errorInvalidCredentials); ^ Error: SIGAA: Invalid credentials. at SigaaLoginIFSC.parseDesktopLoginResult (C:\Users\nessa\Desktop\coding\reactjs\sigaa\ok\node_modules\sigaa-api\src\session\login\sigaa-login-ifsc.ts:93:15) at processTicksAndRejections (node:internal/process/task_queues:95:5) at SigaaLoginIFSC.desktopLogin (C:\Users\nessa\Desktop\coding\reactjs\sigaa\ok\node_modules\sigaa-api\src\session\login\sigaa-login-ifsc.ts:65:12) at SigaaLoginIFSC.login (C:\Users\nessa\Desktop\coding\reactjs\sigaa\ok\node_modules\sigaa-api\src\session\login\sigaa-login-ifsc.ts:77:20) at Sigaa.login (C:\Users\nessa\Desktop\coding\reactjs\sigaa\ok\node_modules\sigaa-api\src\sigaa-main.ts:309:18) at main (C:\Users\nessa\Desktop\coding\reactjs\sigaa\ok\node_modules\sigaa-api\src\sigaa-main.ts:353:19) [nodemon] app crashed - waiting for file changes before starting...

dduartee commented 1 year ago

hum, estranho Não deveria dar erro, caso o login esteja realmente correto. Ambos parametros dos formulários são identicos...

UFRB image

IFSC image

pode conferir se realmente o usuário e senha estão certos?

vxfontes commented 1 year ago

estão sim, inclusive testei com o usuário e senha de outra pessoa para ver se realmente era problema meu

dduartee commented 1 year ago

Criei uma branch #32 para modificar e testar o seu acesso. Para instalar caso use yarn: yarn add "GeovaneSchmitz/sigaa-api#pull/32/head" caso use npm: npm install "GeovaneSchmitz/sigaa-api#pull/32/head"

e lembre-se de colocar o parâmetro institution image

Eu investiguei as requisições até onde consigo ir, não tem nenhuma diferença. O que eu sugiro é tentar debugar o código direto do node_modules/ e comparar com as requisições do navegador normal. O metódo que está retornando erro é este: linha 106 de /session/login/sigaa-login-ufrb.js image ou seja, a página pós login contém o "Entrar no Sistema" e "Usuário e/ou senha inválidos", o que é estranho.

antes do const accountPage = .... coloque o console.log(page.requestBody), ele retornará no console os parâmetros enviados no post da requisição, sairá algo como isto

width=0&height=0&urlRedirect=&subsistemaRedirect=&acao=&acessibilidade=&user.login=SEU_USUARIO&user.senha=SUA_SENHA

Obviamente, não coloque ele aqui pois contém o seu login, apenas veja se está correto.

Caso esteja correto, vamos precisar comparar com as requisições do navegador pelo inspecionar elemento (F12), na aba network, clique na engrenagem na direita image e habilite a primeira opção (Persist Logs) Volte para a página e coloque seu login e faça o login.

Selecione o primeiro da lista (POST) image

Detalhe, o meu statusCode foi 200, por causa que me retornou direto a página de erro, mas se o login tiver sucesso ele geralmente será 302.

Ao lado entre na aba Request e ali estará os dados enviados da requisição image

Verifique se eles são iguais aos retornados pelo console.

dduartee commented 1 year ago

Olá, conforme a issue #36, acredito que estejam tratando do mesmo problema.

Se possível, peço que ao invés de instalar a biblioteca da forma normal, instale da seguinte forma:

Com as aspas!

yarn add "https://github.com/GeovaneSchmitz/sigaa-api/"

ou com o npm

npm install "https://github.com/GeovaneSchmitz/sigaa-api/"

Possivelmente o código no npm está com desatualizado em relação ao repositório do GitHub, visto que na issue #36 há um bug que exibe a mesma mensagem de erro, inclusive nos meus testes com o SIGAA do IFSC.

Caso seja esse o problema, terá que usar temporariamente a biblioteca direto pelo github até que seja resolvido. Não custa tentar :)