Note
Devido ao numero crescente de comentários e dúvidas nesse simples Gist, decidi organizar melhor as principais funções da API REST do GLPI em https://glpi-rest-api.surge.sh/
Para obter um token de API no GLPI, você precisa seguir os seguintes passos:
- Habilitar a API REST no GLPI Primeiro, verifique se a API REST está habilitada:
Faça login no GLPI como administrador
- Vá para Configuração > Geral > APIs
- Certifique-se de que a opção "Habilitar API REST" esteja ativada
- Criar um token de API para um usuário
- Vá para Administração > Usuários
- Selecione o usuário para o qual deseja criar o token
- Vá para a seção "Chaves de acesso remoto"
- Marque a opção "re-gerar" e clique em "Salvar"
- Copie a chave gerada
- Token da aplicação:
- Vá para Configuração > Geral > APIs
- Clique no botão "Adicionar clientes da API"
- Insira um nome
- Marque a opção "Ativo" como "Sim"
- Preencha os campos "Início do intervalo de endereços IPv4" e "Fim do intervalo de endereços IPv4"
- Clique no botão "Adicionar"
- Selecione o cliente criado e copie o token.
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: user_token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "App-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
"https://glpi.exemplo.com.br/apirest.php/initSession"
Tenho o mesmo problema. O perfil tem permissão para fazer isso pela GUI, o que me leva a pensar que é algo de errado na requisição.
@clacostta @fellipemanosso @amatiuzo @flaviobunker
---- EDIT ----
Consegui descobrir o problema 😭
Para chamar
POST apirest.php/Document_Itempara um ticket, o seu perfil deve ter permissão para editar o ticket. No meu caso o perfil de usuário comum só pode criar o ticket e não editar, daí o problema de permissão ao tentar associar o documento ao ticket. Ao fazer a associação com um perfil de técnico (que pode editar o ticket), funcionou perfeitamente.