The code below is used to connect with the GLPI API, but I get the following error when trying to print only the ticket id:
Error:
Traceback (most recent call last): File "E:\D E V\ChamadosAbertosPraMimAPI.py", line 118, in <module> ticket() File "E:\D E V\ChamadosAbertosPraMimAPI.py", line 116, in ticket print("ID:", chamado["id"], "| Título:", chamado["name"]) ~~~~~~~^^^^^^ TypeError: string indices must be integers, not 'str'
My code is:
import requests
import json
def initSession(api_token):
urlInitSession = 'http://172.16.41.19/glpi/apirest.php/initSession?get_full_session=true'
cabeçalho = {
'Authorization':'user_token {}'.format(api_token)
}
# Aqui o código faz a requisição ao endpoint utilizando no 'hearders' somente o valor de autenticação no formato de dicionário. com o segundo valor sendo 'user_token + parâmetro passado no argumento da função.
response = requests.get(urlInitSession,headers=cabeçalho)
# Aqui declara-se a variável token_sessão como GLOBAL, a fim de utilizá-la nas outras funções.
global token_sessao
token_sessao = response.json()["session_token"]
return token_sessao
def ticket():
urlTicket='http://172.16.41.19/glpi/apirest.php/search/Ticket'
payload = {
'criteria[0][link]': 'AND', # criteria[X]: onde X é um número inteiro que representa o índice do critério de busca a ser especificado.
'criteria[0][field]': '8', # [field]: especifica o campo do objeto a ser pesquisado. No caso deste exemplo, o valor "8" representa o campo "Título" do objeto "Ticket".
'criteria[0][searchtype]': 'contains', # [searchtype]: especifica o tipo de busca a ser realizada. Neste exemplo, o valor "contains" representa a busca por valores que contenham a string especificada no campo [value].
'criteria[0][value]': '', # [value]: especifica o valor a ser buscado. No exemplo, o valor está em branco, o que significa que a busca será realizada sem restrições.
'criteria[1][link]':'',
'criteria[1][field]':'7',
'criteria[1][searchtype]':'equals',
'criteria[1][value]':'Novo'
}
cabeçalho = {
'Session-Token':token_sessao,
}
response = requests.get(urlTicket,params=payload,headers=cabeçalho)
chamados = response.json()
# Iterar sobre a lista de chamados e exibir informações desejadas
for chamado in chamados:
print("ID:", chamado["id"], "| Título:", chamado["name"])
initSession('8WPgA8MKDjCV9RhKXWKasS3pA2gXCI2Q1M3VS3vH')
ticket()
How can I make this code show the correct result? how to fix the above error?