自動翻訳API 「Microsoft Translator」のJavaからの使い方

前回の記事では、「Microsoft Translator」を利用するために、ユーザ情報の登録までを行いました。

一カ月当たり20万文字までは無料で翻訳できるんでしたね。これはすごい。個人レベルの仕様では充分だと思います。

さて、今回は登録した「Microsoft Translator」のAPIを利用します。

Javaを利用してAPIに翻訳してもらうことにしましょう。

アプリケーションの登録

前回、「プライマリアカウントキー」と「顧客ID」が重要ですというお話をしましたが、ここで、新規にアプリケーションを登録して、「クライアントID」と「秘密キー」を生成しておきましょう。

APIの使用には、この「クライアントID」と「秘密キー」が必要でした。実際にCalしたところ、上記の「プライマリアカウントキー」と「顧客ID」でも呼び出しは成功しましたが、失敗する確率が非常に多く、使い物にならず、悩んでしまいました。

新規にアプリケーションを登録して生成した「クライアントID」と「秘密キー」を使えば、今のところ、100%、翻訳が成功しています。

では、開発者のページから自分のアプリケーションの登録を行います。

入力する項目は以下の通りです。

クライアントID・・・適当な名前で構いません。英語の方が問題が少ないでしょう。

名前・・・これも適当な名前で構いません。英語の方が問題が少ないでしょう。

顧客の秘密・・・あらかじめ入っています。特に変更の必要はないです。

リダイレクトURI・・・Oauth認証を利用するアプリなどで利用します。今回はクライアントアプリから翻訳APIを呼ぶだけなので、必要ありません。

必須項目なので、適当に入れておいてもよいです。Http形式のURLを入力すると、上記のようなエラーが出ます。これは、通常のOauth認証ではSSL(https)での利用が推奨されているためです。今回は利用しないので、エラーは気にしないでください。

以上の項目を入力したら、「登録」ボタンを押して登録を行います。

ライブラリの用意

「Microsoft Translator」をJavaから利用するには、「microsoft-translator-java-api」を使うと便利です。

「microsoft-translator-java-api」のページから最新のjarをダウンロードして、Javaのクラスパスに通せば、すぐに利用ができます。

私は、今回は「microsoft-translator-java-api-0.6.1-jar-with-dependencies.jar」をダウンロードして来て利用しました。

このページには簡単なサンプルコードもあります。

コーディング

では、実際にJavaでコーディングしてみましょう。

といっても、あまり難しくないです。

public class TranslateExample
{
    public static void main( String[] args ) throws Exception {
        // Set the Client ID / Client Secret once per JVM. It is set statically and applies to all services
        Translate.setClientId("YOUR_CLIENT_ID_HERE");
        Translate.setClientSecret("YOUR_CLIENT_SECRET_HERE");
 
        // From French -> English
        String translatedText = Translate.execute("Bonjour le monde", Language.FRENCH, Language.ENGLISH);
        System.out.println("French -> English : " + translatedText);
 
        // From English -> French - AUTO_DETECT the From Language
        translatedText = Translate.execute("Hello world!",Language.FRENCH);
        System.out.println("English AUTO_DETECT -> French: " + translatedText);
 
        // English AUTO_DETECT -> Arabic
        translatedText = Translate.execute("Hello world, how are you doing?",Language.ARABIC);
        System.out.println("English AUTO_DETECT -> Arabic: " + translatedText);
    }
}

だけで済みます。

・YOUR_CLIENT_ID_HEREには、新しく登録したアプリの「クライアントID」

・YOUR_CLIENT_SECRET_HEREには、新しく登録したアプリの「顧客の秘密」

の値を代入しましょう。