概要

 自分のアプリの改修に伴い翻訳APIを使った時の事をまとめた記事です。Microsoft Translatorを使いました。他にも翻訳APIは例えばGoogle Translate APIがありますが2011年末に有料化したので、Microsoft Translatorです。
 API使用には、使用登録、APIからaccess_tokenを取得、そのaccess_tokenを使い翻訳API使用、の手順が必要です。

登録

 Windows Azure Marketplaceから登録を行って下さい。使うのはMicrosoft Translatorです。この記事を書いている時点で2,000,000文字/月までは無料ですがよく確認しましょう。
 この後アプリケーションを登録すると、「顧客の秘密」という値が受け取れます。これが後でclient_secretになります。登録したアプリケーションはここから確認できます。

access token取得

 以下のAPIから返ってくるjsonより、access_tokenを取得します。

・エンドポイントURL
https://datamarket.accesscontrol.windows.net/v2/OAuth2-13
・パラメタ
client_id アプリケーションを登録したときに登録した「クライアントID」
client_secret アプリケーションを登録したときに登録した「顧客の秘密」
scope http://api.microsofttranslator.com
grant_type client_credentials
・戻り値
{"token_type":"http://schemas.xmlsoap.org/ws/2009/11/swt-token-profile-1.0","access_token":"ここにアクセストトークンが入ります","expires_in":"599","scope":"http://api.microsofttranslator.com"}

戻り値のaccess_tokenを次に使います。なおこのtokenの有効時間は10分だけなので、キャッシュして使い回しましょう。時間が来たら再取得が必要です。

翻訳APIの使用

 翻訳APIに翻訳元と先の言語コードと、翻訳したい文字列を渡して翻訳します。なお、ここで使う言語コードはTranslator Language Codesで定義されています。対応している言語もこちらで確認してください。

・エンドポイントURL
http://api.microsofttranslator.com/V2/Http.svc/Translate
・パラメタ
from 翻訳元テキストの言語コード
to 翻訳先の言語コード
text 翻訳したい文字列
・ヘッダ
キーは「Authorization」、値は「Bearer」+ 半角スペース + 先程取得したaccess_token
・戻り値
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">ここに翻訳結果の文字列</string>

これで翻訳結果が取得できます。

サンプルサイト

サンプルのサイトです。入力されたキーワードを一度他の言語に翻訳し、それを再び元に戻して返します。いわゆる再翻訳です。
http://honyaku.herokuapp.com/

実装サンプル

github

リンク

ドキュメント 
Microsoft Translator