JavaScript
Azure
CognitiveServices
Translator

Azure の Translator Text API でテキスト翻訳する

More than 1 year has passed since last update.

文書

API ドキュメント
http://docs.microsofttranslator.com/text-translate.html

概要

  • REST API 呼び出しである。(GET)
  • 認証情報を渡す必要がある。2種類の方法がある
    • 1段階。
      • (1)翻訳サービスにアクセスキーを直接指定する
    • 2段階。
      • (1)アクセスキーを用いて 10分間有効なアクセストークンを生成
      • (2)翻訳サービスにアクセストークンを渡す
      • 短いインターバルで翻訳サービスを呼ぶ場合に性能面で有利と思われる。
  • パラメータ概要
    • 認証情報
      • appid または Authorization を利用する場合、予めアクセストークンを取得し、"Bearer" + " " + "access_token" 形式で指定。
      • Ocp-Apim-Subscription-Key を利用する場合、アクセスキーを指定。
    • 翻訳対象のテキスト
    • 翻訳先の言語
    • 翻訳元の言語(オプショナル)
    • contentType(オプショナル)
    • category(オプショナル)
    • => 詳しくは、API ドキュメントを参照のこと

実装

ポイント

  • 翻訳サービスにアクセスキーを直接指定する方式を採用
  • アクセスキーは、Azure の Translator Text API リソースの「キー」にて確認したものを設定
  • 必須パラメータのみ設定
var https = require('https');
var qs = require('querystring');

(function() {
    "use strict";

    translate('こんにちは', function (translated) {
        console.log("translated = " + translated);
    });

 })();


function translate(text, callback) {

    var subscriptionKey = "アクセスキー(1または2)を指定してください";

    var params = '&from=ja' +
            '&to=en' +
            '&text=' + qs.escape(text) +
            '&oncomplete=translated';

    var body = '';
    var options = {
        host: 'api.microsofttranslator.com',
        path: '/V2/Http.svc/Translate?' + params,
        method: 'GET',  
        headers: {
            'Ocp-Apim-Subscription-Key': subscriptionKey
        }
    };

    var req = https.request(options, function (res) {
        res.setEncoding('utf8');
        res.on('data', function (chunk) {
           body += chunk;
        }).on('end', function () {
            callback(body);
        });
    }).on('error', function (err) {
        console.log(err);
    });


    req.end();
}

参考