動機
- データ分析で謎言語が出てきたので翻訳したいが、一個ずつやってるとめんどくさい。
- APIで無料翻訳できるものはあるが、GASでも作れるとのことで試しに作ってみる。
参考
2.【GAS】Googleの翻訳機能を使って無料の翻訳APIを作成してみよう。 - ポンコツエンジニアのごじゃっぺ開発日記。
実装
基本的には1.の記事のとおりに実装すればOK。
スクリプト内容は以下のとおり。(1.の記事から引用)
function doGet(e) { // リクエストパラメータを取得する var p = e.parameter; // LanguageAppクラスを用いて翻訳を実行 var translatedText = LanguageApp.translate(p.text, p.source, p.target); // レスポンスボディの作成 var body; if (translatedText) { body = { code: 200, text: translatedText }; } else { body = { code: 400, text: "Bad Request" }; } // レスポンスの作成 var response = ContentService.createTextOutput(); // Mime TypeをJSONに設定 response.setMimeType(ContentService.MimeType.JSON); // JSONテキストをセットする response.setContent(JSON.stringify(body)); return response; }
公開方法が少し変わっていて、「デプロイ>新しいデプロイ」とする。
発光されたURLにクエリ文字列(パラメータ)を付加して実行する。
text:翻訳したい文字列、source:翻訳元言語、target:翻訳先言語
翻訳を行うクラス:Class LanguageApp | Apps Script | Google Developers
言語指定(639-1):ISO 639-1コード一覧 - Wikipedia
トラブル
実行したところ、以下の表示。
スクリプト関数が見つかりません:doGet
対応:「デプロイ>デプロイの管理>編集(鉛筆マーク)」から「新バージョン」を選択し、デプロイし直しで解決。
→ 古いスクリプトが内部で参照されていたようで、更新することで解決。