Я экспериментирую со службой перевода на основе ботов Microsoft. Я написал метод, которому передаю функцию обратного вызова, которая получает мой переведенный текст.
У меня есть существующий бот, который вызывает конечную точку HTTP для создания выходных данных на английском языке. Я хочу перевести вывод на другой язык, прежде чем вернуть его пользователю. Мой неизмененный код выглядит так:
await request.post(ENDPOINT,
{
headers: HEADERS,
json: BODY
},
async function (error, response, body) {
if (response.statusCode == 202) {
var msg = body.mainResponse.text;
context.sendActivity(msg);
}
});
Это работает просто отлично. Данные, передаваемые в теле ответа HTTP, анализируются и отправляются обратно пользователю.
Теперь я хочу подключить свой переводческий сервис. У меня есть одна функция, которую я вызываю для этого, которая называется Translator.translate(text, callback)
. Я добавил этот вызов к моей существующей функции, чтобы получить:
await request.post(ENDPOINT,
{
headers: HEADERS,
json: BODY
},
async function (error, response, body) {
if (response.statusCode == 202) {
var msg = body.mainResponse.text;
await Translator.translate(msg, function (output) {
context.sendActivity(output);
});
}
}
);
Мой процесс перевода запускается, и я получаю перевод в переменной output
, но пользователю ничего не отправляется обратно. Глядя на терминал, я вижу ошибку «Невозможно выполнить« get »для прокси, который был отозван», относящийся к строке context.sendActivity
в моем обратном вызове.
Может кто-нибудь подсказать, как сохранить объект контекста активным?
Заранее спасибо.