「[Google Apps Script]サイドバーから画像をドキュメントに挿入する(スプレッドシート)」では、スプレッドシート上に画像を挿入するスクリプトを紹介しましたが、今回は文書の場合の処理を考えてみます。
・コード.gs
var ui = DocumentApp.getUi(); var html = HtmlService.createHtmlOutputFromFile('Pixabay').setTitle('Pixabayから画像を挿入').setWidth(300); function onOpen(e){ ui.showSidebar(html); } function searchPixabayPhoto(txt){ var content = ''; var user = ''; //Pixabayのユーザー名をここに入力 var key = ''; //PixabayのAPIキーをここに入力 var url = 'http://pixabay.com/api/?username=' + user + '&key=' + key + '&lang=ja&image_type=all&orientation=all&order=popular&search_term=' + encodeURIComponent(txt); var res = UrlFetchApp.fetch(url); var data = JSON.parse(res.getContentText()); if(parseFloat(data.totalHits) < 1){ content = '<h3>写真が見つかりませんでした。</h3>'; }else{ content = '<ol>'; data.hits.forEach(function(item){ content += '<li><img src="' + item.previewURL + '" alt="' + item.webformatURL + '" title="クリックすると画像を挿入します。"><ul><li><a href="' + item.pageURL + '" target="_blank" title="クリックすると写真のページを開きます。">PageURL</a></li></ul></li>'; }); content += '</ol>'; } html.append(content); ui.showSidebar(html); //サイドバー再描画 } function insertPixabayPhoto(url){ var dat = UrlFetchApp.fetch(url); DocumentApp.getActiveDocument().getBody().insertImage(0, dat.getBlob()); }
・Pixabay.html
<html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons.css"> <style> #main{padding:20px;} img:hover{cursor:pointer;} </style> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function(){ $("#q").keypress(function(e){ switch(e.which){ case 13: //Enterキー入力時の処理 google.script.run.searchPixabayPhoto($(this).val()); break; } }); $("img").click(function(){ google.script.run.insertPixabayPhoto($(this).attr("alt")); }); }); </script> </head> <body> <div id="main"> <input id="q" type="text" title="キーワード入力後Enterキーを押してください。"> </div> </body> </html>
「[Google Apps Script]サイドバーから画像をドキュメントに挿入する(スプレッドシート)」のコードとの違いは画像挿入部分だけでその他はほとんど同じです。
この記事へのコメントはありません。