Я использую Google Script для создания билетов на событие, и билет включает в себя QR-код, который идет по предварительно заполненной ссылке Google Form.Поскольку она предварительно заполнена, строка довольно длинная, и API Google Charts для создания QR-кодов не будет принимать текстовую строку, которая долго используется GET-запросом, но я не могу найти документацию о том, как кодировать POST-запросв скрипте приложений.Как сгенерировать POST-запрос в скрипте приложений, который будет возвращать изображение QR-кода, которое я затем смогу вставить в документ?
Я уже попробовал GET-запрос, и он усекает URL-адрес перед его кодированием вQR-код.Это приводит меня к форме Google, но не к предварительно заполненной версии, которую генерирует ссылка (на самом деле довольно умно со стороны Google, когда она усекает строку в месте, которое все еще дает пригодный для использования URL, но это на другой день ...)
Я также пытался с помощью HtmlService отобразить QR-код, используя метод POST с API-интерфейсом Charts в форме HTML, которая автоматически отправляется при загрузке этого HTML-кода.Если я использую showSidebar (), это откроет изображение на новой вкладке, но я не выяснил, как вернуть это изображение, чтобы его можно было вставить в документ.
Я также пыталсяСоздание BLOB-объекта с HTML, а затем сохранение BLOB-объекта в формате PNG, но из проведенного мною исследования метод .getAs () не отображает изображения при преобразовании HTML.
Функция renderQR:
function renderQR(inputUrl) {
var html = HtmlService.createTemplateFromFile('QREncode.html');
html.url = inputUrl;
var rendered = html.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setHeight(300)
.setWidth(300);
return rendered;
}
Файл QREncode.html:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script type='application/javascript'>
// Send the POST when the page is loaded,
// which will replace this whole page with the retrieved chart.
function loadGraph() {
var frm = document.getElementById('post_form');
if (frm) {
frm.submit();
}
}
</script>
</head>
<body onload="loadGraph()">
<form action='https://chart.googleapis.com/chart' method='POST' id='post_form'>
<input type='hidden' name='cht' value='qr' />
<input type='hidden' name='chl' value='<?= url ?>' />
<input type='hidden' name='chs' value='300x300' />
<input type='submit'/>
</form>
</body>
</html>
Когда я воспринимаю возврат из функции renderQR () как изображение, скрипт Apps выдает ошибку, в которой говорится, что это «Недопустимо».данные изображения ", что имеет смысл - но как мне преобразовать их в изображение, или есть ли лучший или более простой способ, которым я мог бы сделать это?