LoginSignup
2
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-11-14

文書

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();
}

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1