はじめに
この記事の焼き直しみたいなものです。
ただ、一部引っ掛かったところがあったり、少し古くなっていたので備忘録的な意味もかねて、、、
対象者
- 無料で翻訳してくれるAPIが欲しい人
- 翻訳の字数制限が煩わしい人
- 多少の手間は厭わない人
手順
GoogleAppScriptプロジェクトの作成
- 上記のサイトにアクセスします
- 左上にある
新しいプロジェクトを押してプロジェクトを作成します
-
名前を変更から名前を変更します。何でもよいですが、今回はmainとします
- 上部のこの部分を押して名前を変更します。何でもよいですが、今回は
google_translate_apiとします
中身を作る
main.gs
function doGet(e) {
const param = e.parameter;
const translatedText = LanguageApp.translate(param.text, param.source, param.target);
let body = null;
if (translatedText) {
body = {
code: 200,
text: translatedText
};
} else {
body = {
code: 400,
text: "Bad Request"
};
}
const response = ContentService.createTextOutput();
response.setMimeType(ContentService.MimeType.JSON);
response.setContent(JSON.stringify(body));
return response;
}
- あとは保存します
デプロイする
最後にデプロイしてAPIとして使えるようにしますが、GoogleDriveから公開設定を変えないとアクセス拒否されます(ここで詰まりました)
GoogleDriveから公開設定を変える
デプロイする
実行してみる
パラメータは三つあります
- text: 翻訳する文章
- source: 翻訳元言語(iso639コード)
- target: 翻訳先言語(〃)
試しに HelloWorld を訳してもらいましょう
https://script.google.com/macros/s/AKfycbyY3OmmviCBf6Fh6kJOIL4tVf0os8BsstJZUCfoM2bnUy4-WNjKR_Na8P2bxzgpY9k/exec?text=HelloWorld&source=en&target=ja
もちろん、axiosやfetchやその他諸々でもアクセスできます
axiosから叩いてみる
const { default: axios } = await import("axios");
const url = "https://script.google.com/macros/s/AKfycbyY3OmmviCBf6Fh6kJOIL4tVf0os8BsstJZUCfoM2bnUy4-WNjKR_Na8P2bxzgpY9k/exec";
const params = {
text: "Hello World",
source: "en",
target: "zh-TW"
}
await axios.get(url, {params})
詳しい仕様
- Googleによるドキュメントに対応している言語が書かれています
- 翻訳元言語(source)は指定しなくてもよいようです(参考)
- 指定しない場合自動で判別されるようです
その他より詳細な仕様については、ここに書かれています
終わりに
少し長くなってしまいましたが、Google翻訳APIを無料で作る方法でした。
初めて書いた記事なので、いろいろとツッコミどころなどがあるかもしれませんがお許しを、、、笑
間違っているところなどあればコメントをもらえると助かります。







