Всем привет! Я обращаюсь за помощью по интеграции API GLPI для создания заявок.
Я успешно настроил интеграцию API, чтобы пользователи могли открывать заявки через бота Telegram. Хотя заявки создаются успешно, я сталкиваюсь с проблемами при заполнении полей «Инициатор запроса» и «Наблюдатель».
Ожидается, что поле «Инициатор запроса» будет заполнено адресом электронной почты, предоставленным пользователем боту Telegram.
Ниже приведен фрагмент кода Python, который я использую для справки:
import requests
GLPI_URL = ‘http://your-glpi-instance/glpi/apirest.php’ GLPI_API_KEY = ‘Your_API_Key’
def init_session(): url = f’{GLPI_URL}/initSession’ headers = { ‘Content-Type’: ‘application/json’, ‘App-Token’: GLPI_API_KEY, ‘Authorization’: ‘user_token Your_User_Token’ }
response = requests.get(url, headers=headers)
if response.status_code == 200:
session_token = response.json().get('session_token')
return session_token
else:
print(f"Error initiating session in GLPI: {response.status_code}, {response.text}")
return None
def create_ticket(session_token): url = f’{GLPI_URL}/Ticket’ headers = { ‘Content-Type’: ‘application/json’, ‘App-Token’: GLPI_API_KEY, ‘Session-Token’: session_token }
# Specify the user's email as the requester
requester_email = 'user@example.com'
data = {
'input': {
'name': 'Sample Ticket',
'content': 'Description of the sample ticket',
'requester': {
'id': 2, # Replace with the actual user ID (you may need to check in the GLPI database)
'name': 'User Name',
'email': requester_email
},
'watchers': [
{'email': 'another@example.com'}
]
}
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 201:
print("Ticket successfully created in GLPI.")
else:
print(f"Error creating ticket in GLPI: {response.status_code}, {response.text}")
if name == ‘main’: session_token = init_session()
if session_token:
create_ticket(session_token)]
Также нашел на каком-то форуме добавление альтернативной почты специалиста назначенного на заявку, но не инициатора запроса