Botframework-solutions: ДСйствия обновлСния послС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° 0.8 Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 20 мая 2020  Β·  18ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: microsoft/botframework-solutions

Какой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚?

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π°Π²Ρ‹ΠΊΠΎΠ².

На ΠΊΠ°ΠΊΠΎΠΌ это языкС?

Машинопись.

Π§Ρ‚ΠΎ происходит?

Π’ ΠΊΠ°Π½Π°Π»Π΅ MS Teams ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ дСйствиС ΠΈΠ· Π½Π°Π²Ρ‹ΠΊΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Как воспроизвСсти эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ?

  1. ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠΈΡ‚Π΅ VA ΠΈ Skill Π½Π° послСднюю Π²Π΅Ρ€ΡΠΈΡŽ Typescript 0.8
  2. Π’ VA ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ класс CustomSkillHandler, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ класс ChannelServiceHandler (Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ это, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ функция updateActivity Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² прСдоставлСнном SkillHandler)
  3. Π’Π½ΡƒΡ‚Ρ€ΠΈ CustomSkillHandler Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ onUpdateActivity :
    protected async onUpdateActivity(claimsIdentity: ClaimsIdentity, conversationId: string, activityId: string, activity: Activity): Promise<ResourceResponse> {
        return await this.updateActivity(claimsIdentity, conversationId, activityId, activity);
    }

Π° функция updateActivity выглядит Ρ‚Π°ΠΊ:

private async updateActivity(claimsIdentity: ClaimsIdentity, conversationId: string, replyToActivityId: string, activity: Activity): Promise<ResourceResponse> {

        let skillConversationReference: SkillConversationReference;
        try {
            skillConversationReference = await this.conversationIdFactory.getSkillConversationReference(conversationId);
        } catch (err) {
            // If the factory has overridden getSkillConversationReference, call the deprecated getConversationReference().
            // In this scenario, the oAuthScope paired with the ConversationReference can only be used for talking with
            // an official channel, not another bot.
            if (err.message === 'Not Implemented') {
                const conversationReference = await this.conversationIdFactory.getConversationReference(conversationId);
                skillConversationReference = {
                    conversationReference,
                    oAuthScope: JwtTokenValidation.isGovernment(this.channelService) ?
                        GovernmentConstants.ToChannelFromBotOAuthScope :
                        AuthenticationConstants.ToChannelFromBotOAuthScope
                };
            } else {
                // Re-throw all other errors. 
                throw err;
            }
        }

        if (!skillConversationReference) {
            throw new Error('skillConversationReference not found');
        }
        if (!skillConversationReference.conversationReference) {
            throw new Error('conversationReference not found.');
        }

        const activityConversationReference = TurnContext.getConversationReference(activity);

        const callback = async (context: TurnContext): Promise<void> => {
            const adapter: BotFrameworkAdapter = (context.adapter as BotFrameworkAdapter);
            // Cache the ClaimsIdentity and ConnectorClient on the context so that it's available inside of the bot's logic.
            context.turnState.set(adapter.BotIdentityKey, claimsIdentity);
            context.turnState.set(this.SkillConversationReferenceKey, activityConversationReference);
            activity = TurnContext.applyConversationReference(activity, skillConversationReference.conversationReference) as Activity;
            const client = adapter.createConnectorClient(activity.serviceUrl);
            context.turnState.set(adapter.ConnectorClientKey, client);

            context.activity.id = replyToActivityId;
            await context.updateActivity(context.activity);
            return;
        };
        AppCredentials.trustServiceUrl(skillConversationReference.conversationReference.serviceUrl);

        await (this.adapter as BotFrameworkAdapter).continueConversation(skillConversationReference.conversationReference, skillConversationReference.oAuthScope, callback);
        return { id: uuid() };
    }
  1. Π’ индСксС ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ объявлСниС SkillHandler :
// Register the request handler.
const handler: CustomSkillHandler = new CustomSkillHandler(adapter, bot, skillConversationIdFactory, credentialProvider, authenticationConfiguration);
const skillEndpoint = new ChannelServiceRoutes(handler);
skillEndpoint.register(server, '/api/skills');

  1. ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ дСйствиС обновлСния ΠΈΠ· ΠΊΠ°Π½Π°Π»Π° Teams.

Π§Π΅Π³ΠΎ Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ?

ΠšΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ° обновляСтся Π² Teams

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΆΡƒΡ€Π½Π°Π»Π°ΠΌΠΈ, Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ошибок ΠΈ Ρ‚. Π”.?

Ошибка отобраТаСтся, ΠΊΠΎΠ³Π΄Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ устройство пытаСтся ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ дСйствиС ΠΈΠ· Ρ€Π°Π½Π΅Π΅ описанной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ onUpdateActivity .

(node:13410) UnhandledPromiseRejectionWarning: Error: Failed to decrypt conversation id
    at new RestError (/Users/xxxx/Desktop/repository/xxx/virtual-assistant/node_modules/botframework-connector/node_modules/@azure/ms-rest-js/dist/msRest.node.js:1397:28)
    at /Users/xxxx/Desktop/repository/xxx/virtual-assistant/node_modules/botframework-connector/node_modules/@azure/ms-rest-js/dist/msRest.node.js:1849:37
    at process._tickCallback (internal/process/next_tick.js:68:7)
(node:13410) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 10)

КакиС-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ контСкст?

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΊΠ°Π½Π°Π»ΠΎΠ²

Bot Services Bug customer-replied-to customer-reported

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π΅Ρ‰Π΅ Ρ€Π°Π· @ Batta32 :) Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ этот вопрос Ρ€Π΅ΡˆΠ΅Π½! Π—Π°Π²Ρ‚Ρ€Π° я ΠΏΡ€ΠΎΠ²Π΅Π΄Ρƒ Π΅Ρ‰Π΅ нСсколько Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… тСстов, Π½ΠΎ, ΠΏΠΎΡ…ΠΎΠΆΠ΅, мСня ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ измСнСния Π² классС Test Skill Handler, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ прСдоставили. Бпасибо!

ВсС 18 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Бпасибо @ tommyJimmy87 Π·Π° сообщСниС ΠΎΠ± этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅, ΠΌΡ‹ всС Π΅Ρ‰Π΅ рассматриваСм Π΅Π΅. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΠΌΡ‹ вСрнСмся ΠΊ Π²Π°ΠΌ 😊!

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, @ tommyjimmy87 , ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ Π½Π΅ смогли воспроизвСсти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ.

  1. Π§Ρ‚ΠΎ Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ с The Card is updated in Teams ?
  2. Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° ΠΈ Π½Π°Π²Ρ‹ΠΊΠΈ Π² вСрсии TypeScript?
  3. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ шаги ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ / связи ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠΌ ΠΈ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ, ΠΈ ΠΊΠ°ΠΊ Π²Ρ‹ тСстируСтС CustomSkillHandler ?
  4. Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ [email protected] для создания Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° ΠΈ Π½Π°Π²Ρ‹ΠΊΠ°?

Π’ΠΎΡ‚ Π²Π΅Ρ‚ΠΊΠ° с нашими послСдними измСнСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ внСсли для воспроизвСдСния этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π‘Ρ€Π΅Π΄Π°

Π¨Π°Π³ΠΈ воспроизвСдСния

  1. Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ VA & Skill с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ generator-bot-virtualassistant
  2. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ VA & Skill с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ botskills connect
  3. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ класс CustomSkillHandler, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΎΡ‚ ChannelServiceHandler
  4. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ onUpdateActivity ΠΈ updateActivity Π² CustomSkillHandler
  5. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ индСксный Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ CustomSkillHandler
  6. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ связь ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠΌ ΠΈ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°Π½Π°Π»Π° Teams.

Π‘ΡƒΠ΄Π΅ΠΌ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΎΡ‚Π²Π΅Ρ‚Ρƒ!

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ @ Batta32 , ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° ваши вопросы:

  1. Π― имСю Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ я ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ adaptive card Π² ΠΊΠ°Π½Π°Π»Π΅ MS Teams, ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ°Ρ€Ρ‚Π° обновляСтся послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ я Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ дСйствиС (ΠΊΠ°Ρ€Ρ‚Π° находится Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π½Π°Π²Ρ‹ΠΊΠ°, поэтому Π² основном тСст - это updateActivity ΠΎΡ‚ Π½Π°Π²Ρ‹ΠΊΠ° Π΄ΠΎ VA).

  2. Π”Π°, ΠΈ VA, ΠΈ Skill находятся Π² машинописном тСкстС

  3. Π’ Π½Π°Π²Ρ‹ΠΊΠ΅ Ρƒ мСня Π΅ΡΡ‚ΡŒ adaptive card , послС дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ эта ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ​​другим содСрТимым. Из Π½Π°Π²Ρ‹ΠΊΠ° я Π½Π°Π·Ρ‹Π²Π°ΡŽ updateActivity :

dc.context.updateActivity(previouslySentActivity);

previouslySentActivity это дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ, ΠΌΡ‹ сохраняСм дСйствиС Π² состоянии, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅. Π­Ρ‚ΠΎ использовалось для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсии, Π½ΠΎ процСсс ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈ обновлСния, насколько я понимаю, измСнился с Π½ΠΎΠ²ΠΎΠΉ вСрсиСй.

Π­Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ VA (ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚), которая Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. Π’Ρ‹Π·ΠΎΠ² поступаСт Π² CustomSkillHandler Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ onUpdateActivity Π½ΠΎ Π·Π°Ρ‚Π΅ΠΌ я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ сообщСниС ΠΎΠ± ошибкС, ΠΊΠΎΠ³Π΄Π° дСйствиС отправляСтся Π² MS Teams.

  1. НСт, ΠΊ соТалСнию, наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΡƒΠΆΠ΅ находится Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΌ состоянии, ΠΈ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, сохранив всС настраиваСмыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ сдСлали, Π² основном, ΠΌΡ‹ пСрСнСсли Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π§Ρ‚ΠΎ Π½Π΅ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

Π”Π°ΠΉΡ‚Π΅ ΠΌΠ½Π΅ Π·Π½Π°Ρ‚ΡŒ, Ссли Π²Π°ΠΌ понадобится большС контСкста, Ρ‚Π΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, я смогу ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ это Ρ‚Π°ΠΊΠΆΠ΅ Π² вашСй Π²Π΅Ρ‚ΠΊΠ΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρƒ мСня такая ΠΆΠ΅ ошибка.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ @ Batta32 , я тСстировал Π΅Π³ΠΎ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ для тСстирования. Π― создал Π²ΠΈΠ»ΠΊΡƒ здСсь: https://github.com/tommyJimmy87/botframework-solutions/tree/feature/southworks/conversationid-issue
Π― ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π²Π°ΡˆΡƒ Π²Π΅Ρ‚ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ воспроизвСсти Ρ‚Ρƒ ΠΆΠ΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π’ testSkillHandler я Π΄ΠΎΠ±Π°Π²ΠΈΠ» try-catch, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

            try{
                await context.updateActivity(activity);
            }catch(e){
                console.log(e);
            }

Π­Ρ‚ΠΎ настоящая ошибка, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ updateActivity :

{ body: '{"error":{"code":"ServiceError","message":"Unknown"}}',
     headers: HttpHeaders { _headersMap: [Object] },
     status: 400 },
  body: { error: { code: 'ServiceError', message: 'Unknown' } } }

Π’ΠΎ ΠΆΠ΅ самоС ΠΈ Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.
Π­Ρ‚ΠΎ тСст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я сдСлал:

  1. Π― создал Π½ΠΎΠ²Ρ‹ΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²Π½ΡƒΡ‚Ρ€ΠΈ sample-skill testUpdateActivityDialog Π³Π΄Π΅ Π² beginDialog я ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽ TestCard с тСкстом. Π’ onContinueDialog я ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΊΡƒ, Π½ΠΎ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ тСкстом;

  2. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ VA ΠΊ Π½Π°Π²Ρ‹ΠΊΡƒ.

  3. Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ VA с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Навык, запустит Π΄ΠΈΠ°Π»ΠΎΠ³ тСстирования ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΠΊΠ°Ρ€Ρ‚Ρƒ;

  4. Π’Ρ‹Π·ΠΎΠ² VA с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Навык ΠΈ continueDialog Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° тСстирования;

  5. Навык Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ VA, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ сообщСниС ΠΎΠ± ошибкС.

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ @ tommyJimmy87 ! ΠœΡ‹ рассмотрим Π΅Π³ΠΎ с этой Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, большоС спасибо.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ @ tommyJimmy87! ΠœΡ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ воспроизвСли сцСнарий с использованиСм Π²Π°ΡˆΠΈΡ… послСдних ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ упомянутых шагов

ΠœΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ нас появятся ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ обновлСния, ΠΌΡ‹ вСрнСмся ΠΊ Π²Π°ΠΌ 😊.

_ΠœΡ‹ протСстировали связь ΠΌΠ΅ΠΆΠ΄Ρƒ Π±ΠΎΡ‚Π°ΠΌΠΈ VA ΠΈ Skill, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ² Ρ‚Ρƒ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° Π½Π°Π²Ρ‹ΠΊΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± активности VA_
image

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, @ DiegoCardozo94!

Бпасибо за обновлСния.

Π£ вас Π΅ΡΡ‚ΡŒ ΠΈΠ΄Π΅ΠΈ, ΠΊΠΎΠ³Π΄Π° это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ΠΎ?
Как Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ΠΎ Π΄ΠΎ 17-Π³ΠΎ числа, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ нас Π΅ΡΡ‚ΡŒ строгоС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с нашСй стороны, ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ просто ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ 17-Π΅ число ΠΈΠ»ΠΈ Π½Π΅Ρ‚? :)

Бпасибо

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, @ tommyJimmy87 , ΠΈΠ·Π²ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ.

Нам ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈ Π² C #, поэтому, ΠΏΠΎΡ…ΠΎΠΆΠ΅, ΠΎΠ½Π° связана Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с TypeScript.

ΠœΡ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ нСсколько связанных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ :

  1. microsoft / botframework-sdk # 5919: Π² Π½Π΅ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описано, Ρ‡Ρ‚ΠΎ SkillHandler Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ResourceResponse ΠΊΠΎΠ³Π΄Π° пСрСнаправляСт дСйствия ΠΎΡ‚ Π½Π°Π²Ρ‹ΠΊΠ° Π½Π° ΠΊΠ°Π½Π°Π». Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ update ΠΈ delete , Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ .
  2. microsoft / botbuilder-dotnet # 3686: Π² Π½Π΅ΠΌ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ класс SkillHandler Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ OnUpdateActivityAsync .
    Если Π½Π°Π²Ρ‹ΠΊ запускаСтся Π±Π΅Π· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ°, ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Π½ΠΎ ΠΏΡ€ΠΈ запускС с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΡƒ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ.
    Π’ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ говорится, Ρ‡Ρ‚ΠΎ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ исправлСна ​​в ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ выпускС . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ состояниС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² этом microsoft / botframework-sdk # 5788.
  3. officedev / botbuilder-microsoftteams # 124: Π² Π½Π΅ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описано, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании Π±ΠΎΡ‚Π° V3 Π² ΠΊΠ°Π½Π°Π»Π°Ρ… Teams ΠΎΠ½ Π½Π΅ выполняСт Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ запрос HTTP 400 (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅).

И послСднСС, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠ΅: ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ сцСнарии, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ шаги:

  • [Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚] Волько Π½Π°Π²Ρ‹ΠΊ TypeScript
  • [ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° воспроизвСдСна] Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ TypeScript ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ» TypeScript Skill
  • [ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° воспроизвСдСна] Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ TypeScript ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ C # Skill
  • [ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° воспроизвСдСна] C # Virtual Assistant ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ TypeScript Skill
  • [ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° воспроизвСдСна] C # Virtual Assistant ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ C # Skill

@darrenj , ΠΌΡ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠ»ΠΈ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΎΡ‚ΠΎΠ² C #.

Наша тСстовая срСда :

  • Π’Π΅Ρ‚ΠΊΠ° с нашими модификациями
  • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° C #
  • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π°Π²Ρ‹ΠΊΠΎΠ² C #

Наши шаги воспроизвСдСния :

  1. Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ ΠΎΠ±Π° ΠΎΠ±Ρ€Π°Π·Ρ†Π°
  2. НастройтС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° с Ngrok
  3. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° ΠΊ Microsoft Teams
  4. Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠΌ
  5. ЗапуститС ΠΎΠ±Π° ΠΎΠ±Ρ€Π°Π·Ρ†Π°
  6. Π’ Microsoft Teams ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΡƒ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ OnboardingDialog.
  7. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Β«ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† выполнСния» Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с тСкстом Β«ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ дСйствиС».
  8. ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ сообщСниС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΡƒ, ΠΎΠ½ выдаст ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ.

_Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ выдаст ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ дСйствиС _
image

_TypeScript Skill ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Microsoft Teams Channel, обновляя Ρ€Π°Π½Π΅Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ _
image

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, https://github.com/microsoft/botframework-sdk/issues/5919 Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°Π΄Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ Π½Π° всСх Ρ‚Ρ€Π΅Ρ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… языках, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π»ΠΈ это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Ρ… сборок, начиная с Π·Π°Π²Ρ‚Ρ€Π°ΡˆΠ½Π΅Π³ΠΎ дня.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ @ Batta32 , Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ сначала ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ, Π²Π΅Ρ€Π½ΠΎ? Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я ΡƒΠΆΠ΅ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ?

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ @ tommyJimmy87! Π”Π°, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ @gabog упомянул для TypeScript ΠΈ C #.

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ эту Π²Π΅Ρ‚ΠΊΡƒ, добавляя послСдниС обновлСния ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΡƒΡŽ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΡƒΡŽ сборку ΠΏΠ°ΠΊΠ΅Ρ‚Π° SDK botbuilder-v4-js-daily, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит microsoft / botbuilder-js # 2489 ΠΈ microsoft / botbuilder-dotnet # 4264.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ нас появятся ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ обновлСния, ΠΌΡ‹ вСрнСмся ΠΊ Π²Π°ΠΌ 😊.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, @ tommyJimmy87 , ΠΌΡ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ microsoft / botbuilder-js # 2489 Π² testSkillHandler эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½Π° ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ обновляСтся с использованиСм ΠΊΠ°Π½Π°Π»Π° Microsoft Teams.

ΠžΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ эту Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² своСм testSkillHandler , особСнно Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ processActivity .

@darrenj & @gabog - ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ измСнСния microsoft / botbuilder-dotnet # 4264 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΎΡ‚ΠΎΠ² C # .

Наша тСстовая срСда:

  • Π’Π΅Ρ‚ΠΊΠ° с нашими модификациями
  • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° TypeScript
  • ΠžΠ±Ρ€Π°Π·Π΅Ρ† Π½Π°Π²Ρ‹ΠΊΠΎΠ² TypeScript

Π¨Π°Π³ΠΈ воспроизвСдСния:

  1. Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ ΠΎΠ±Π° ΠΎΠ±Ρ€Π°Π·Ρ†Π°
  2. НастройтС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° с Ngrok
  3. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° ΠΊ Microsoft Teams
  4. Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠΌ
  5. ЗапуститС ΠΎΠ±Π° ΠΎΠ±Ρ€Π°Π·Ρ†Π°
  6. Π’ Microsoft Teams ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΡƒ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ OnboardingDialog.
  7. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Β«ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† выполнСния» Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с тСкстом Β«ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ дСйствиС».
  8. ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ сообщСниС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΡƒ, ΠΎΠ½ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ с тСкстом Β«ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΒ».

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅

_ИзмСнСния, внСсСнныС Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ processActivity ΠΈΠ· testSkillHandler_
image

_TypeScript Virtual Assistant ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Microsoft Teams Channel, обновляя Ρ€Π°Π½Π΅Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ _
image

Π‘ΡƒΠ΄Π΅ΠΌ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΎΡ‚Π²Π΅Ρ‚Ρƒ!

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ @ Batta32 , спасибо Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΠΌΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ это ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ скорСС. Волько ΠΎΠ΄ΠΈΠ½ вопрос с ΠΌΠΎΠ΅ΠΉ стороны: измСнилась Π»ΠΈ какая-Π»ΠΈΠ±ΠΎ вСрсия Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ это просто ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Π²Ρ‹ΡˆΠ΅? Бпасибо

@ tommyJimmy87 - ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Π²Ρ‹ΡˆΠ΅!

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π΅Ρ‰Π΅ Ρ€Π°Π· @ Batta32 :) Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ этот вопрос Ρ€Π΅ΡˆΠ΅Π½! Π—Π°Π²Ρ‚Ρ€Π° я ΠΏΡ€ΠΎΠ²Π΅Π΄Ρƒ Π΅Ρ‰Π΅ нСсколько Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… тСстов, Π½ΠΎ, ΠΏΠΎΡ…ΠΎΠΆΠ΅, мСня ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ измСнСния Π² классС Test Skill Handler, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ прСдоставили. Бпасибо!

Бпасибо @ tommyJimmy87! Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ это ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚Π΅, ΠΌΡ‹ смоТСм Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ 😊.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ @ Batta32! ΠœΡ‹ с Ρ€Π°Π΄ΠΎΡΡ‚ΡŒΡŽ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ этот вопрос :)

Бпасибо @ tommyJimmy87 Π·Π° ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅!

@darrenj - ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±Ρ‹Π»Π° Ρ€Π΅ΡˆΠ΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ SDK!

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

Π‘ΠΌΠ΅ΠΆΠ½Ρ‹Π΅ вопросы

gabog picture gabog  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

lauren-mills picture lauren-mills  Β·  4ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

edemehmetcan picture edemehmetcan  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

samaea picture samaea  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

igor17400 picture igor17400  Β·  4ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ