ITとかCockatielとか

技術のこととか。飼鳥(オカメインコ)のこととか。気になったこととか。基本的には備忘録。

Google Apps Script (GAS) で 翻訳を行うWeb API を作る

動機

  • データ分析で謎言語が出てきたので翻訳したいが、一個ずつやってるとめんどくさい。
  • APIで無料翻訳できるものはあるが、GASでも作れるとのことで試しに作ってみる。

参考

1.Google翻訳APIを無料で作る方法 - Qiita

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;
}

公開方法が少し変わっていて、「デプロイ>新しいデプロイ」とする。

f:id:sik_bug:20210812140747p:plain

発光されたURLにクエリ文字列(パラメータ)を付加して実行する。

https://script.google.com/macros/s/hogehoge/exec?text=Hello&source=en&target=ja?text=Hello&source=en&target=ja

text:翻訳したい文字列、source:翻訳元言語、target:翻訳先言語

翻訳を行うクラス:Class LanguageApp  |  Apps Script  |  Google Developers

言語指定(639-1):ISO 639-1コード一覧 - Wikipedia

トラブル

実行したところ、以下の表示。

スクリプト関数が見つかりません:doGet

対応:「デプロイ>デプロイの管理>編集(鉛筆マーク)」から「新バージョン」を選択し、デプロイし直しで解決。

f:id:sik_bug:20210812141406p:plain

→ 古いスクリプトが内部で参照されていたようで、更新することで解決。