概要
- IBMはIBM Cloudというプラットフォームの中で翻訳APIを提供している。(制限付き無料)
- IBM Cloudのアカウントを作成しAPIを有効化。
- APIキーをゲットして以下のリクエストを投げる。
(コマンドプロンプトの場合) curl -X POST -u "apikey:(ここにAPIキーを貼り付け)" -H "Content-Type: application/json" -d "{\"text\": [\"Hello, world! \", \"How are you?\"], \"model_id\":\"en-es\"}" "(ここに専用URLを貼り付け)/v3/translate?version=2018-05-01" (PowerShellの場合) (まずはBASIC認証情報の作成) $cred = Get-Credential (これをするとダイアログが出てユーザー名とパスワードを求められるので、ユーザー名は"apikey"の6文字、パスワードはAPIキーを貼り付ける) (然る後に以下のコマンド) Invoke-WebRequest ` -Method POST ` -ContentType: "application/json" ` -Body '{"text": ["Hello, world!", "How are you?"], "model_id":"en-es"}' ` -Credential $cred ` -Uri "(ここに専用URLを貼り付け)/v3/translate?version=2018-05-01" | Select-Object -Expand Content
返ってくるデータはこちら。
{ "translations" : [ { "translation" : "¡ Hola, mundo!" }, { "translation" : "¿Cómo estás?" } ], "word_count" : 5, "character_count" : 25 }
解説
アカウント作成
適当に「IBM translator api」で検索すると「Watson Language Translator」というのが出てくる。「登録する」または「今すぐ使う」をクリックすると、アカウント作成後すぐにTranslator APIを有効化するページに飛びます。

アカウント作成のためのメールアドレス確認。

アカウント作成。自分は実はすでにログインIDを持っていたけどアカウントは持っていなかったという謎な状態だったので、個人情報・パスワード等を入力するタイミングが無かった。でも作るにしてもそんなに難しくないはず。

API有効化ページ。右下のCreateをクリック。

クイックスタート的なページに飛ばされるので、APIキーをゲットするためにページ左部のManageをクリック。

APIキーと専用URLゲット。

コマンドについて
BASIC認証が必要。curl
は-u
コマンドでやってくれるけど、Invoke-WebRequest
は暗号化を自分でしないといけない。
↓これをすると

↓これが出て

ユーザー名 : apikey
パスワード : (APIキーを貼り付け)
で、以下のコマンドを打つとよい。
Invoke-WebRequest ` -Method POST ` -ContentType: "application/json" ` -Body '{"text": ["Hello, world!", "How are you?"], "model_id":"en-es"}' ` -Credential $cred ` -Uri "(ここに専用URLを貼り付け)v3/translate?version=2018-05-01" | Select-Object -Expand Content
参考
Invoke-WebRequest , Invoke-RestMethod で 基本認証 – Qiita
送信するJSONについて
見やすくするとこう。
{ "text": [ "Hello, world!", "How are you?" ], "model_id": "en-es" }
model_id
で翻訳元、翻訳先を同時に指定できるみたい。翻訳元を自動検出するなら、
{ "text": [ "Hello, world!", "How are you?" ], "target": "es" }