По-видимому, согласно поддержке MS Azure, мне нужно публиковать здесь вопрос, а не иметь возможность задать его где-нибудь в MS, так что вот так ...
Я создал собственную модель перевода в CustomПеревод, и я отправляю отображаемый идентификатор категории в моей строке внутри этой функции в JS:
снимок экрана, показывающий идентификатор категории
function translateText() {
var myText = 'こんにちわ。' //for example ;)
var fromLan = 'ja'
var toLan = 'en'
var categoryId = 'c02fd3c3-d9cc-4943-b838-88aa9ba2fe75-FINANCE'
var sp = PropertiesService.getScriptProperties();
var token = sp.getProperty('ms_token');
var url = 'https://api.microsofttranslator.com/v2/Http.svc/Translate';
var hd = {
'Authorization': 'Bearer '+token
};
url += '?from=' + fromLan + '&to=' + toLan + '&category=' + categoryId + '&text=';
url += encodeURIComponent(myText);
var xml = UrlFetchApp.fetch(url, {
'method': 'get',
'headers': hd
});
xml = xml.getContentText();
xml = xml.match(/^<string\s.*>(.*)<\/string>$/);
return(xml[1]);
}
(Этов скрипте листов Google. Я пытался поместить его в пользовательскую функцию для использования в электронной таблице, но я упростил ее здесь, чтобы объяснить проблему)
Но я получаю эту ошибку обратно в ответе:
Сообщение: недопустимая категория
полный ответ здесь
Извините, я не программист по профессии, поэтому я, вероятно, сделал что-то глупое,но кто-нибудь может указать, что это такое?
Вы заранее удивительны!Спасибо
Итак, теперь я изменил вызов V3, и вместо передачи токена я могу отправить ключ подписки (в соответствии с api docs), поэтому мой код теперь:
function get_translate() {
var myKey = 'mykeygoeshere';
var myCategory = 'c02fd3c3-d9cc-4943-b838-88aa9ba2fe75-FINANCE';
var myText = 'こんにちわ。';
var toLanguage = "en";
var url = 'https://api.cognitive.microsofttranslator.com/';
url += 'translate?api-version=3.0';
url += '&to=' + toLanguage + '&category=' + myCategory ;
var params = {
'method': 'POST',
'headers': {
'Ocp-Apim-Subscription-Key': myKey,
'Content-Type': 'application/json'
},
'body': {
'text': myText
}
};
var output = UrlFetchApp.fetch(url, params);
Logger.log(output);
}
но отчеты журнала ошибок:
{"error":{"code":400000,"message":"One of the request inputs is not valid."}}
может кто-нибудь помочь, пожалуйста?
последняя ошибка после добавления JSON.Stringify () - см. скриншот [здесь] 4