かくすけのいろいろ作るブログ

かくすけの開発者ブログです。開発の他いろいろなモノづくりについて書きます。

Google Apps Scriptで作成した翻訳APIを使用する

こんにちは。かくすけです。
今回は翻訳用APIを作成する方法をまとめていきます。
ちなみに私はGASを使うのは初めてです。こんなに便利なものがあるなんて!

目次

  • GAS使用を決めた経緯
  • GASを使った翻訳APIの作成
  • おわりに

GAS使用を決めた経緯

ひとことでいうと「無料でつかえるから」です!

現在OCRと翻訳を使った↓のWindows Formアプリを開発しています。
kakusuke98.hatenablog.com

そして、このアプリにはすでに Google Transflation API を使った翻訳の仕組みを実装しています。
しかし問題点が。Google Translation API は使用するたびに課金される従量課金制です。
このアプリを公開・配布してしまうと、使われれば使われるほど私のお財布からお金が飛んでいくという悲しい状態になってしまうのです。
私はそんなにお金持ちじゃないのでできる限りお金が飛ばないようにできないものか・・・と考えてこの方法を見つけました。

GASは基本的に無料で使えるサービスで、ブラウザ上でjavascriptをベースとしたプログラムをかけるサービスです。
今回Googleの翻訳を使うように、GoogleカレンダーGmailなどのGoogleのサービスと連携させることもできます。API化もできるんですから、使い方は無限大ですね!

今まではAWSのサービスを使うことが多かったのですが、どうしても金銭面の問題があったので・・・今後はGASのお世話になることが増えるかもしれません!!

script.google.com

GASを使った翻訳APIの作成

コードの内容は次のページで紹介されているものをまるっと使わせていただきましたので、内容が気になる方はこちらのページを参考にされて下さい。
ありがとうございます!!
xn--pckzexbx21r8q9b.net

私の場合は一箇所だけ設定を変更しました。
参考ページの項目"APIを公開"の部分。
こちらのページではGoogle ChromeからのAPI呼び出しを想定されているのだと思います。

今回の私のパターンでは

  • Windows Form AppからAPIを呼び出す
  • 不特定多数の利用を許可する

ということで、次のような設定にしました
f:id:kakusuke98:20200213224105p:plain

"Execute the app as"では自分を選択します。
これにより、こちらのScriptは私のアカウントを使って処理を行います。
でもみんな使えるようにしたいんでしょ?と思われるかもしれませんが、この設定はあくまで"どのアカウントを使って処理を走らせるか?"の設定であって、"だれが使えるか?"ではありません。
その設定は次の選択です。

"Who has accecc to the app"で"Anyone, even anonymous"を選択することで誰でも使えるAPIとすることができます。
"全ユーザー"と"Anyone, even anonymous"の違いがわかりづらいですが、Googleへのログインが必要かどうかの差だと思います。多分。
今回はGoogleへのログインなしで使えるAPIにするので"Anyone, even anonymous"を選択しました。

おわりに

これでもう翻訳APIの作成が完了です!!
とっても簡単!!

ただし、無料ということでAPIの呼び出し可能回数には制限があります。
ログインしたアカウントでの制限のようでした!今回は誰でもアクセスできるログインなしの方法だから問題ない?

developers.google.com

制限はありますが、これによってとりあえず限定人数に向けたテスト公開は結構近いうちにできる気がしてきました!!
制限の内容はしっかりとは確認できていないのですが、スクリプトの実行アカウント(上の設定でいう"Execute the app as")によって制限回数が設定されているのであれば、Googleへのログインの仕組みを作ることで制限回数は気にしなくてよくなる気がします。

はやくテスト公開できるようにがんばるぞー!!