kintone から Azure の Translator Text API を使う
6939 ワード
Cyboze kintone をカスタマイズし、Translator Text API を呼び出す。
これにあたり、kintone で用意されている API を使う。
( Node.js や jQuery も使えるらしいのだが、あまりに知識がなく>< )
参考
-
JavaScriptを使用したkintoneのカスタマイズ
-
他サービスのAPIからデータを取得してkintoneに表示してみよう
-
kintone API で Promise を使ってみよう!
実装
JavaScriptを使用したkintoneのカスタマイズ
他サービスのAPIからデータを取得してkintoneに表示してみよう
kintone API で Promise を使ってみよう!
仕様(なんちゃって仕様)
- 新規「保存」処理で翻訳している。(編集時には翻訳してない)
- 「日本語」に入力した値を英語に翻訳して、「英語」に設定する
- 言語は、ja => en 固定としている(簡単のため)
実装上のポイント
- kintone.Promise を用いて、非同期処理の終了を待つ
- kintone.proxy を用いて、https リクエストを発行する
(function() {
"use strict";
// レコード追加画面の保存前処理
kintone.events.on('app.record.create.submit', function(event) {
var record = event.record;
var text = record["日本語_0"]["value"];
var subscriptionKey = "アクセスキーを設定してください";
var options = 'https://api.microsofttranslator.com/v2/http.svc/Translate?' +
'&from=ja' +
'&to=en' +
'&text=' + text;
return new kintone.Promise(function(resolve, reject) {
kintone.proxy(options, 'GET', {'Ocp-Apim-Subscription-Key': subscriptionKey}, {
}, function(body, status, headers) {
//success
const data = body;
const translated = data.replace(/<("[^"]*"|'[^']*'|[^'">])*>/g, '');
record['英語_0']['value'] = translated;
resolve(event);
}, function(error) {
//error
alert("error: " + error); //proxy APIのレスポンスボディ(文字列)を表示
resolve(event);
});
});
});
})();
とても気に入らないこと
- アクセスキーは環境変数化できないものか。。
Author And Source
この問題について(kintone から Azure の Translator Text API を使う), 我々は、より多くの情報をここで見つけました https://qiita.com/january108/items/ed58bd119bc35efeecba著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .