Войти

Показать полную графическую версию : [решено] html конвертнуть в json и передать по api


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

DJ Mogarych
25-10-2022, 10:36
А хелпдеск не умеет принимать заявки по почте, обязательно через API надо?

Njem
25-10-2022, 17:29
А хелпдеск не умеет принимать заявки по почте, обязательно через API надо? »
смысл в создании рассылки, которая будет создавать новый и новый тикет на каждое письмо отправленное на почту с использованием HTML шаблона текста

Serguei Kouzmine
26-10-2022, 03:51
$HTML_BODY = Get-Content -Path "D:\Script\BoardMaps\Automatic email\TestEmail.html" | ConvertTo-Json


этот дуратский html -- общего решения не существует

разбирайтесь с текстом "TestEmail.html" что в нем покажите
придется нужное индивидуально вытаскивать




© OSzone.net 2001-2012