我正在编写一个脚本,以使用 deepl api 翻译谷歌表格单元格中包含的文本。我的代码工作并生成结果,但它无法识别单元格中包含的文本。
这是我正在使用的代码:
function deeplapi() {
var response = UrlFetchApp.fetch("https://api.deepl.com/v2/translate?auth_key=xxxx-xxxx-xxxx-xxxx-xxxx&text="+ text +"&target_lang=en&source_lang=es");
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var text = sheet.getRange(3,2).getValue();
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data);
}
尽管它会生成响应,但输入的文本显示为“未定义”
结果是这样的。如您所见,文本显示为未定义:
Información {translations=[{text=undefined, detected_source_language=ES}]}
解决办法是 你需要在函数内的参数中使用 sinceis之前定义:text
response
text
fetch
function deeplapi() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var text = sheet.getRange(3,2).getValue(); // define text before response
var response = UrlFetchApp.fetch("https://api.deepl.com/v2/translate?auth_key=xxxx-xxxx-xxxx-xxxx-xxxx&text="+ text +"&target_lang=en&source_lang=es");
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data);
}