前回の記事では、「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には、新しく登録したアプリの「顧客の秘密」
の値を代入しましょう。