Bot Builder SDK4 - Microsoft Teams Extensions + эмулятор бота - PullRequest
0 голосов
/ 03 июля 2019

Я начинаю разрабатывать бота для команд Microsoft, используя конструктор ботов Microsoft sdk v4 и расширение для команд (v4 - бета1) в машинописи (node.js), и я хочу его протестировать.Для этого на локальном компьютере я скачал эмулятор платформы фреймворка v4.Вначале я попытался бы создать простого эхо-бота, но с проактивным ответом, например:

'''javascript

const teamsContext = TeamsContext.from(context);
const convRef = TurnContext.getConversationReference(context.activity);
const tenantId = teamsContext.tenant.id;

var text = "You said : " + context.activity.text + "\n memberId : " + context.activity.from.id + "\n memberName : " + context.activity.from.name +
                        "\n channelId : " + context.activity.channelId;
const members = adapter.getConversationMembers(context);
                    await adapter.createConversation(convRef, async (newContext) => {
                        await newContext.sendActivity(text + "\n" + JSON.stringify(members));
                    });

'''

Но, когда я пробую его на эмуляторе, я получаю эту ошибку: [onTurnError]: TypeError: Невозможно прочитать свойство 'tenant' из неопределенного.Я полагаю, что общий контекст нельзя «перевести» в контексте команд из-за эмулятора.Можно ли протестировать бота без его развертывания, например, пользовательский http-запрос, или мне следует развернуть его?

1 Ответ

0 голосов
/ 03 июля 2019

Если вы хотите протестировать своего бота в командах, вам нужно создать бота в Azure.Вам не обязательно развертывать его, поскольку вы можете использовать Azure Relays или ngrok для запуска своего локально размещенного бота через Azure, а затем и в командах.

Какой бы вкус вы ни выбрали, вы будете запускать этот сервис локально на своей машине вместе с вашим ботом.Сгенерированная конечная точка, которую вы поместите в конечную точку обмена сообщениями блейда настроек бота Azure.Обязательно добавьте сгенерированную конечную точку с помощью «/ api / messages» (например, https://testrelay.servicebus.windows.net/myrelay/api/messages).

enter image description here

Вы также должны быть уверены, чтовключите MicrosoftAppId и MicrosoftAppPassword от вашего бота Azure в своего локально размещенного бота.Вы должны записать их, когда ваш бот Azure создан.Если вы пропустили это, вы можете щелкнуть по колонке «Deployments» в группе ресурсов, выбрать развернутого бота, а затем Inputs.Ваши значения хранятся там как 'appId' и 'appSecret'.

enter image description here

На этом этапе ваш бот должен быть в порядке.Вам нужно будет зарегистрировать своего бота в командах, прежде чем он будет признан.Вы можете добавить его через каналы вашего бота Azure, который сделает его доступным только для вас, или добавить его как приложение через приложение Teams, для которого требуется создать и загрузить приложение Teams manifest .

Надежда на помощь!

...