見出し画像

【GASを使ったHTTP通信】GASの使用例

1.Google翻訳
GASにPOSTで翻訳したい文字列を投げて、日本語に翻訳してもらう。

main.gs

function doPost(e) {
const str = e.postData.getDataAsString();
const translatedText = LanguageApp.translate(str, "", “ja”);

const output = ContentService.createTextOutput();
output.setMimeType(ContentService.MimeType.TEXT);
output.setContent(translatedText);
return output;
}

LanguageApp.translate(str, "", “ja”)
↑これが翻訳部分です。
第一引数に翻訳したい文字列、第二引数は翻訳前の言語、第三引数は翻訳後の言語です。
第二引数は空にすることで自動で判別してくれます。

script.js
const request =”翻訳したい文字列”;
xhr = new XMLHttpRequest();
xhr.onload = function (e) {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
console.log(xhr.responseText);
}
}
};
xhr.open('POST', 'ここはGASのURL', true);
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
xhr.send(request);

POSTが正常に行われたら翻訳した文章がコンソールに表示されます。
ページから文字列を取得して翻訳し、翻訳後に入れ替えたりして使うなども出来ます。
Google翻訳を頻繁に使うような方にオススメです。

2.スプレッドシート
スプレッドシートと連携して、中に入っているデータを取得する。

main.gs
function doGet(e) {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getActiveSheet();
const range = sheet.getRange(1,1,12);
//Logger.log(range.getValues());

const output = ContentService.createTextOutput();
output.setMimeType(ContentService.MimeType.TEXT);
output.setContent(range.getValues());
return output;
}

const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getActiveSheet();
↑この2行で現在アクティブなスプレッドシートから、アクティブなシートを取得してます。
const range = sheet.getRange(1,1,12);
↑これでシートのA1から下に12行のデータを取得してます。
第一引数は行、第二引数は列、第三引数は開始位置から下に何行取得
第三は開始位置だけ欲しいなら要らないし、第四引数として開始位置から右に何列取得を追加できます。

script.js
xhr = new XMLHttpRequest();
xhr.onload = function (e) {
console.log(xhr.responseText);
};
xhr.open('GET', 'ここはGASのURL');
xhr.send();

スプレッドシートに十二支や十二星座でも書いておけば、GETしたときに返してくれます。
スプレッドシートに色々なデータを残しておき、必要になったらその分だけ取得できます。
汎用性が高そうなので使い方次第でとても便利になると思います。

3.その他の例
・Twitterへの自動投稿
スプレッドシートにあらかじめ投稿したいことを書いておき、時間になったら自動で投稿してくれる。
・Googleドライブ内のデータまとめ
ドライブ内のファイルやフォルダを一括でスプレッドシートに書き出してくれる。

4.まとめ
GASは比較的簡単に作業を自動化出来ます。
今回挙げた以外にも多数の使い道があるので、作業効率を上げたい場合はGASの使用を考えるのもいいと思います。
皆さんもGASを使いこなして、面倒な作業を自動化しましょう。

参考URL
・https://qiita.com/satto_sann/items/be4177360a0bc3691fdf
・https://qiita.com/cazimayaa/items/224daebe536799e5a8a2
・https://fastclassinfo.com/entry/what_gas_can_do/