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

✨feat: Suporte login UNB #36

Open Suyannesara opened 1 year ago

Suyannesara commented 1 year ago

Quando instalo a api no meu projeto e passo minhas credenciais, recebo esse erro:

.../sigaa-login-ifsc.ts:93
throw new Error(this.errorInvalidCredentials);
              ^
Error: SIGAA: Invalid credentials.

Pontos importantes:

Decidi clonar o repositório para testar os examples importando a class Sigaa diretamente dos arquivos do projeto:

//examples/get-account-info.js
const { Sigaa } = require('../dist/sigaa-main.js');

const sigaa = new Sigaa({
  url: 'https://sigaa.unb.br'
});

Dessa maneira colocando minhas credenciais, funcionou perfeitamente e meus dados foram trazidos.

Ao rodar o examples/search-teachers.js, só que dessa vez utilizando const { Sigaa } = require('sigaa-api'); , chega a me retornar o resultado da pesquisa de professores com todos os dados, mas ao fim ainda joga o mesmo erro de SIGAA: Invalid credentials, o que é interessante porque nesse sample e no método de search em si as credenciais de login não são requeridas.

Não sei se ajuda, mas ao entrar no portal essas são as requisições feitas e os status retornados: image

Não consegui identificar a solução, mas eu espero que esses debugs ajudem a descobrir

dduartee commented 1 year ago

Olá, fiz os mesmos passos e de fato, ele dá o erro citado.

EU acredito que seja alguma diferença no código do NPM em relação ao desse aqui direto do repositório. Testei instalando um meu fork do código, e funciona.

Então, por enquanto para não atrapalhar o seu desenvolvimento do código, adicione diretamente o repositório no package.json:

Com as aspas!

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

ou com o npm

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

Preciso ver com o Geovane, acredito que por causa do ultimo commit (837a0654a7a88b43de982804c4e68f0921db037d) ser o merge de um pull request (#27) o npm acabou não publicando, e que por algum motivo dá esse erro.

dduartee commented 1 year ago

Aproveitando a ocasião, acho que é interessante criar uma classe de login específica da UNB, seguindo o padrão:

const sigaa = new Sigaa({
  url: 'https://sigaa.unb.br',
  institution: 'UNB'
}); 

Para CASO tenha alguma diferença entre o SIGAA do IFSC para UNB pode ser modificado.

dduartee commented 1 year ago

Decidi comparar a diferença das duas publicações e sim, está diferente.

No arquivo dist/sigaa-main.js aparenta ter um trecho de código que não deveria estar ali image onde normalmente se acabava no exports.Sigaa = Sigaa;, continua com um código de exemplo. Verifiquei os commits anteriores e não encontrei nada que poderia injetar esse exemplo na classe principal.

Como no código typescript não há nada que injete o código, acredito que se fizer um commit alterando a versão do package.json para 1.0.35 deve resolver.

dduartee commented 1 year ago

Decidi comparar a diferença das duas publicações e sim, está diferente.

No arquivo dist/sigaa-main.js aparenta ter um trecho de código que não deveria estar ali image onde normalmente se acabava no exports.Sigaa = Sigaa;, continua com um código de exemplo. Verifiquei os commits anteriores e não encontrei nada que poderia injetar esse exemplo na classe principal.

Como no código typescript não há nada que injete o código, acredito que se fizer um commit alterando a versão do package.json para 1.0.35 deve resolver.

@GeovaneSchmitz