Njem
24-10-2022, 17:46
Всем привет!
Уже весь инет перерыл, но инфы так и не нашёл...
В общем, суть задачи проста: нужно написать скрипт, который будет через API создавать тикеты в тикетке. Всё в целом легко и просто, однако в ключе текст нужно подставить значение html файла.
По всякому пытался конвертнуть этот html в json, однако это всё криво преобразовывается, либо где-то символы дополнительные вылезают ["",""," ","","",", либо вот такие "\r\n\r\n \r\n\r\n\r\n
Я, примерно, понимаю что к джейсону изначальному нужно как-то добавить добавить джейсон, который как-то надо конвертировать из html, но вот как это всё провернуть я прям ваще не знаю...(
Везде в инете пишут про конвертацию из json в html, а вот в обратную сторону... Возможно есть какой-то обходной путь?
Полноценный код чисто на создание выглядит так:
### ТОКЕН ДОСТУПА ДЛЯ API
$ACCESS_TOKEN = "CODE"
### БАЗОВЫЙ URL ДЛЯ API
$HF_ENDPOINT = "URL"
# КОДИРОВАНИЕ И СОЗДАНИЕ КОДА АВТОРИЗАЦИЙ
$EncodedACCESS_TOKEN = [System.Text.Encoding]::UTF8.GetBytes($ACCESS_TOKEN)
$AuthorizationInfo = [System.Convert]::ToBase64String($EncodedACCESS_TOKEN)
### ЗАГОЛОВОК АВТОРИЗАЦИИ
$HEADERS = @{}
$HEADERS.Add("Authorization", "Basic $AuthorizationInfo")
$HTML_BODY = Get-Content -Path "D:\Script\BoardMaps\Automatic email\TestEmail.html" | ConvertTo-Json
### СОЗДАНИЕ ТИКЕТА
$Body = @{
name = "name";
email = "name@example.ru";
category = 6;
subject = "test subject";
text = $HTML_BODY;
}
### ПРЕОБРАЗУЕМ В JSON И ПРИВЕДЕМ К БАЙТОВОМУ МАССИВУ
$Create_Ticket = [System.Text.Encoding]::UTF8.GetBytes(($Body | ConvertTo-Json -Depth 5))
### СОЗДАЁМ ТИКЕТ
$JSON_RESPONSE = Invoke-RestMethod -Method Post -Uri "$HF_ENDPOINT/api/1.1/json/tickets/" -Headers $HEADERS -Body $Create_Ticket -ContentType "application/json"
Подскажите, пожалуйста, как этот дуратский html передать по api
Уже весь инет перерыл, но инфы так и не нашёл...
В общем, суть задачи проста: нужно написать скрипт, который будет через API создавать тикеты в тикетке. Всё в целом легко и просто, однако в ключе текст нужно подставить значение html файла.
По всякому пытался конвертнуть этот html в json, однако это всё криво преобразовывается, либо где-то символы дополнительные вылезают ["",""," ","","",", либо вот такие "\r\n\r\n \r\n\r\n\r\n
Я, примерно, понимаю что к джейсону изначальному нужно как-то добавить добавить джейсон, который как-то надо конвертировать из html, но вот как это всё провернуть я прям ваще не знаю...(
Везде в инете пишут про конвертацию из json в html, а вот в обратную сторону... Возможно есть какой-то обходной путь?
Полноценный код чисто на создание выглядит так:
### ТОКЕН ДОСТУПА ДЛЯ API
$ACCESS_TOKEN = "CODE"
### БАЗОВЫЙ URL ДЛЯ API
$HF_ENDPOINT = "URL"
# КОДИРОВАНИЕ И СОЗДАНИЕ КОДА АВТОРИЗАЦИЙ
$EncodedACCESS_TOKEN = [System.Text.Encoding]::UTF8.GetBytes($ACCESS_TOKEN)
$AuthorizationInfo = [System.Convert]::ToBase64String($EncodedACCESS_TOKEN)
### ЗАГОЛОВОК АВТОРИЗАЦИИ
$HEADERS = @{}
$HEADERS.Add("Authorization", "Basic $AuthorizationInfo")
$HTML_BODY = Get-Content -Path "D:\Script\BoardMaps\Automatic email\TestEmail.html" | ConvertTo-Json
### СОЗДАНИЕ ТИКЕТА
$Body = @{
name = "name";
email = "name@example.ru";
category = 6;
subject = "test subject";
text = $HTML_BODY;
}
### ПРЕОБРАЗУЕМ В JSON И ПРИВЕДЕМ К БАЙТОВОМУ МАССИВУ
$Create_Ticket = [System.Text.Encoding]::UTF8.GetBytes(($Body | ConvertTo-Json -Depth 5))
### СОЗДАЁМ ТИКЕТ
$JSON_RESPONSE = Invoke-RestMethod -Method Post -Uri "$HF_ENDPOINT/api/1.1/json/tickets/" -Headers $HEADERS -Body $Create_Ticket -ContentType "application/json"
Подскажите, пожалуйста, как этот дуратский html передать по api