Botframework-solutions: 0.8 рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдкрдбреЗрдЯ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рдордИ 2020  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: microsoft/botframework-solutions

рдХреМрди рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИ?

рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдФрд░ рд╕реНрдХрд┐рд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯред

рдпрд╣ рдХрд┐рд╕ рднрд╛рд╖рд╛ рдореЗрдВ рд╣реИ?

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯред

рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

MS Teams Channel рд╕реЗ, рдХрд┐рд╕реА рд╕реНрдХрд┐рд▓ рд╕реЗ рдХрд┐рд╕реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп, рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрджрдо рд╣реИрдВ?

  1. VA рдФрд░ рд╕реНрдХрд┐рд▓ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 0.8 рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВ
  2. VA рдореЗрдВ рд╣рдореЗрдВ рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ "рдХрд╕реНрдЯрдорд╕реНрдХрд┐рд▓рд╣реИрдВрдбрд▓рд░" рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ "ChannelServiceHandler" рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ (рд╣рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ updateActivity рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП "SkillHandler" рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)
  3. "рдХрд╕реНрдЯрдорд╕реНрдХрд┐рд▓рд╣реИрдВрдбрд▓рд░" рдХреЗ рдЕрдВрджрд░ 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 рдЪреИрдирд▓ рд╕реЗ рдЕрдкрдбреЗрдЯ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ.

рдЖрдк рдХреНрдпрд╛ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рдереЗ?

рдХрд╛рд░реНрдб рдЯреАрдореЛрдВ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдХреНрдпрд╛ рдЖрдк рдХреЛрдИ рд▓реЙрдЧ, рддреНрд░реБрдЯрд┐ рдЖрдЙрдЯрдкреБрдЯ рдЗрддреНрдпрд╛рджрд┐ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рддреНрд░реБрдЯрд┐ рддрдм рджрд┐рдЦрд╛рдИ рдЬрд╛рддреА рд╣реИ рдЬрдм VA рдкрд┐рдЫрд▓реЗ рд╡рд░реНрдгрд┐рдд рдлрд╝рдВрдХреНрд╢рди 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

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдп рдлрд┐рд░ рд╕реЗ @ рдмрдЯреНрдЯрд╛ 32 :) рдпрд╣ рднреА рд╣рд▓ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ! рдореИрдВ рдХрд▓ рдХреБрдЫ рдФрд░ рдЧрд╣рди рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдБрдЧрд╛ рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЯреЗрд╕реНрдЯ рд╕реНрдХрд┐рд▓ рд╣реИрдВрдбрд▓рд░ рд╡рд░реНрдЧ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдареАрдХ рд▓рдЧрддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рд╕рднреА 18 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @tommyJimmy87 рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рдЕрднреА рднреА рдЗрд╕рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЬреИрд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реЛрдЧрд╛ рд╣рдо рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖрдПрдВрдЧреЗ ЁЯШК!

рдирдорд╕реНрддреЗ @ tommyjimmy87 , рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд╣реАрдВ рдХрд░

  1. рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ The Card is updated in Teams ?
  2. рдХреНрдпрд╛ рдЖрдк рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдФрд░ рд╕реНрдХрд┐рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
  3. рдХреНрдпрд╛ рдЖрдк рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдФрд░ рд╕реНрдХрд┐рд▓ рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди/рд╕рдВрдЪрд╛рд░ рдЪрд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдк CustomSkillHandler рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
  4. рдХреНрдпрд╛ рдЖрдк рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдФрд░ рд╕реНрдХрд┐рд▓ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдирд░реЗрдЯрд░- рдмреЙрдЯ-рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ@1.0.0 рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдирд╡реАрдирддрдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╡рд╛рд▓реА рд╢рд╛рдЦрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рд╣реИред

рд╡рд╛рддрд╛рд╡рд░рдг

рд░реЗрдкреНрд░реЛ рдХрджрдо

  1. generator-bot-virtualassistant рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ VA рдФрд░ рдХреМрд╢рд▓ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ
  2. botskills connect рдХрдорд╛рдВрдб . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реАрдП рдФрд░ рд╕реНрдХрд┐рд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
  3. ChannelServiceHandler рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдПрдХ рдирдпрд╛
  4. CustomSkillHandler рдкрд░ onUpdateActivity рдФрд░ updateActivity рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ
  5. CustomSkillHandler рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ
  6. рдЯреАрдо рдЪреИрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдФрд░ рд╕реНрдХрд┐рд▓ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ

рд╣рдо рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рдкреНрд░рддрд┐ рдЪреМрдХрд╕ рд░рд╣реЗрдВрдЧреЗ!

рдирдорд╕реНрддреЗ @ рдмрдЯреНрдЯрд╛32 , рдЖрдкрдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛:

  1. рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореИрдВ MS Teams рдЪреИрдирд▓ рдореЗрдВ рдПрдХ adaptive card рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд╛рд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП (рдХрд╛рд░реНрдб рдХреМрд╢рд▓ рдХреЗ рднреАрддрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореВрд▓ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг updateActivity рдХреМрд╢рд▓ рд╕реЗ рд╡реАрдП рддрдХ)ред

  2. рд╣рд╛рдВ, рд╡реАрдП рдФрд░ рд╕реНрдХрд┐рд▓ рджреЛрдиреЛрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реИрдВ

  3. рдХреМрд╢рд▓ рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ adaptive card , рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдмрд╛рдж рдЗрд╕ рдХрд╛рд░реНрдб рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреМрд╢рд▓ рд╕реЗ рдореИрдВ updateActivity рдХрд╣рддрд╛ рд╣реВрдВ:

dc.context.updateActivity(previouslySentActivity);

previouslySentActivity рдпрд╣ рд╡рд╣ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╣рдо рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдп рдореЗрдВ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВред рдпрд╣ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рднреЗрдЬрдиреЗ рдФрд░ рдЕрджреНрдпрддрди рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдкреНрд░рд╡рд╛рд╣ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдмрджрд▓ рдЧрдпрд╛ рд╣реИред

рдпрд╣ рд╡реАрдП рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ (рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ) рдЬрд┐рд╕реЗ рддрдм рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЙрд▓ CustomSkillHandler рдореЗрдВ onUpdateActivity рд╡рд┐рдзрд┐ рдореЗрдВ рдЖрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рддрдм рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ рдЬрдм рдЧрддрд┐рд╡рд┐рдзрд┐ рдПрдордПрд╕ рдЯреАрдореЛрдВ рдХреЛ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред

  1. рдирд╣реАрдВ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЙрдиреНрдирдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ рдФрд░ рдореБрдЭреЗ рд╕рднреА рдХрд╕реНрдЯрдо рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореВрд▓ рд░реВрдк рд╕реЗ, рд╣рдордиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдерд╛ред рдЬреЛ рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд╕рдВрджрд░реНрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕ рдмреАрдЪ, рд╢рд╛рдпрдж рдореИрдВ рдЗрд╕реЗ рдЖрдкрдХреА рд╢рд╛рдЦрд╛ рдкрд░ рднреА рдЖрдЬрд╝рдорд╛ рд╕рдХрддрд╛ рд╣реВрдБ рдФрд░ рдЬрд╛рдБрдЪ рд╕рдХрддрд╛ рд╣реВрдБ рдХрд┐ рдХреНрдпрд╛ рдореЗрд░реЗ рдкрд╛рд╕ рднреА рдпрд╣реА рддреНрд░реБрдЯрд┐ рд╣реИред

рдирдорд╕реНрддреЗ @ рдмрдЯреНрдЯрд╛32 , рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдЙрд╕ рд╢рд╛рдЦрд╛ рд╕реЗ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдПрдХ рдХрд╛рдВрдЯрд╛ рдмрдирд╛рдпрд╛: https://github.com/tommyJimmy87/botframework-solutions/tree/feature/southworks/conversationid-issue
рдореИрдВрдиреЗ рдЙрд╕реА рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рд╢рд╛рдЦрд╛ рдмрджрд▓ рджреА рд╣реИред testSkillHandler рдореИрдВрдиреЗ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрд╢рд┐рд╢-рдкрдХрдбрд╝ рдЬреЛрдбрд╝рд╛:

            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. рдореИрдВрдиреЗ рдирдореВрдирд╛-рдХреМрд╢рд▓ testUpdateActivityDialog рдЕрдВрджрд░ рдПрдХ рдирдпрд╛ рд╕рдВрд╡рд╛рдж рдмрдирд╛рдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ startDialog рдореЗрдВ рдореИрдВ рдПрдХ рдкрд╛рда рдХреЗ рд╕рд╛рде TestCard рднреЗрдЬрддрд╛ рд╣реВрдВред onContinueDialog рдореИрдВ рдПрдХ рд╣реА рдХрд╛рд░реНрдб рднреЗрдЬрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рдкрд╛рда рдХреЗ рд╕рд╛рде;

  2. рд╡реАрдП рдХреЛ рд╕реНрдХрд┐рд▓ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред

  3. рд╡реАрдП рдХреЛ рдХрд┐рд╕реА рдЗрд░рд╛рджреЗ рд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ рдЬреЛ рд╕реНрдХрд┐рд▓ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ рдФрд░ рдЯреЗрд╕реНрдЯ рдбрд╛рдпрд▓реЙрдЧ рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ рдФрд░ рдХрд╛рд░реНрдб рджрд┐рдЦрд╛рдПрдЧрд╛;

  4. VA рдХреЛ рдХрд┐рд╕реА рдРрд╕реЗ рдЗрд░рд╛рджреЗ рд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ рдЬреЛ рдХреМрд╢рд▓ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╡рд╛рдж рдХреЗ continueDialog рдХреЛ рдмреБрд▓рд╛рдПрдЧрд╛;

  5. рдХрд╛рд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрд╢рд▓ рд╡реАрдП рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреАред

рдмрдврд╝рд┐рдпрд╛ @ tommyJimmy87 ! рд╣рдо рдЗрд╕ рдирдИ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ, рдЖрдкрдХрд╛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж .

рд╣рд╛рдп @ tommyJimmy87! рд╣рдордиреЗ рдЖрдкрдХреЗ рдирд╡реАрдирддрдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдФрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд░реЗрдкреНрд░реЛ рдЪрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ред

рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╢реЛрдз рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗред рдЬреИрд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реЛрдЧрд╛, рд╣рдо рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖрдПрдВрдЧреЗ ред

_рд╣рдордиреЗ рд╡реАрдП рдФрд░ рд╕реНрдХрд┐рд▓ рдмреЙрдЯ рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рдЬрдм рдХреМрд╢рд▓ рд╡реАрдП рдХреЛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдЬрд╛рдирдХрд╛рд░реА рднреЗрдЬрддрд╛ рд╣реИ рддреЛ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
image

рд╣рд╛рдп @ рдбрд┐рдПрдЧреЛрдХрд╛рд░реНрдбреЛрдЬрд╝реЛ94 ,

рдЕрджреНрдпрддрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрдм рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ резрен рддрд╛рд░реАрдЦ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рддрд░рдл рд╕реЗ рд╕рдЦреНрдд рд░рд┐рд╣рд╛рдИ рд╣реИ, рд╣рдо рд╕рд┐рд░реНрдл рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдХрд┐ резренрд╡реАрдВ рддрд╛рд░реАрдЦ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИ рдпрд╛ рдирд╣реАрдВ? :)

рдзрдиреНрдпрд╡рд╛рдж

рд╣рд╛рдп @ tommyJimmy87 , рджреЗрд░реА рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред

рд╣рдо рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рд╕реА # рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рди рдХреЗрд╡рд▓ рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред

рд╣рдореЗрдВ рдХреБрдЫ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ рдорд┐рд▓реЗ :

  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 рдмреЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ HTTP 400 рдЦрд░рд╛рдм рдЕрдиреБрд░реЛрдз (рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рдорд╛рди) рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдВрддрд┐рдо рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо, рд╣рдордиреЗ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЪрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдорд╛рдиреНрдп рдХрд┐рдпрд╛:

  • [рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ] рдЕрдХреЗрд▓реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреМрд╢рд▓
  • [рдореБрджреНрджрд╛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд] рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдХрдиреЗрдХреНрдЯреЗрдб рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХрд┐рд▓
  • [рдореБрджреНрджрд╛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд] рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдХрдиреЗрдХреНрдЯреЗрдб C# рд╕реНрдХрд┐рд▓
  • [рдореБрджреНрджрд╛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд] C# рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдХрдиреЗрдХреНрдЯреЗрдб рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХрд┐рд▓
  • [рдореБрджреНрджрд╛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд] C# рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдХрдиреЗрдХреНрдЯреЗрдб C# рд╕реНрдХрд┐рд▓

@darrenj , рд╣рдордиреЗ рд╕реА # рдмреЙрдЯреНрд╕ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ ред

рд╣рдорд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг :

  • рд╣рдорд╛рд░реЗ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╢рд╛рдЦрд╛
  • рд╕реА # рдЖрднрд╛рд╕реА рд╕рд╣рд╛рдпрдХ рдирдореВрдирд╛
  • рд╕реА # рдХреМрд╢рд▓ рдирдореВрдирд╛

рд╣рдорд╛рд░реЗ рд░реЗрдкреНрд░реЛ рдХрджрдо :

  1. рджреЛрдиреЛрдВ рдирдореВрдиреЗ рддреИрдирд╛рдд рдХрд░реЗрдВ
  2. рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдХреЛ Ngrok . рдХреЗ рд╕рд╛рде рд╕реЗрдЯрдЕрдк рдХрд░реЗрдВ
  3. рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдХреЛ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЯреАрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
  4. рд╕реНрдХрд┐рд▓ рдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
  5. рджреЛрдиреЛрдВ рдирдореВрдиреЗ рдЪрд▓рд╛рдПрдБ
  6. Microsoft Teams рдореЗрдВ, Virtual Assistant рдХреЛ рдирдорд╕реНрддреЗ рднреЗрдЬреЗрдВ рдФрд░ OnboardingDialog рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВ
  7. рд░рди рд╕реИрдВрдкрд▓ рдбрд╛рдпрд▓реЙрдЧ рднреЗрдЬреЗрдВ, рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдб рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдЧрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рднреЗрдЬреЗрдВ
  8. рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдХреЛ рдПрдХ рдФрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ, рдпрд╣ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджреЗрдЧрд╛

_рдХрд┐рд╕реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рд╡рд░реНрдЪреБрдЕрд▓ рд╕рд╣рд╛рдпрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджреЗрдЧрд╛_
image

_рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХрд┐рд▓ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЯреАрдореНрд╕ рдЪреИрдирд▓ рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдкрд╣рд▓реЗ рднреЗрдЬреЗ рдЧрдП рдХрд╛рд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ_
image

рдирдорд╕реНрддреЗ, https://github.com/microsoft/botframework-sdk/issues/5919 рдиреЗ рд╕рднреА 3 рд╕рдорд░реНрдерд┐рдд рднрд╛рд╖рд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рд╣реИ, рдЖрдк рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╡рд╣ рд╕рдорд╛рдзрд╛рди рдХрд▓ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рджреИрдирд┐рдХ рдмрд┐рд▓реНрдб рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдирдорд╕реНрддреЗ @ рдмрдЯреНрдЯрд╛32 , рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛? рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рд╣рд╛рдп @ tommyJimmy87! рд╣рд╛рдБ, рд╣рдо рдорд╛рдиреНрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпрд╛ @gabog рдЙрд▓реНрд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдФрд░ рд╕реА #ред

рд╣рдо рдЕрдВрддрд┐рдо рдЕрдкрдбреЗрдЯ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕ рд╢рд╛рдЦрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдПрд╕рдбреАрдХреЗ рдХреЗ

рдЬреИрд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реЛрдЧрд╛, рд╣рдо рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖрдПрдВрдЧреЗ ред

рдирдорд╕реНрддреЗ @ tommyJimmy87 , рд╣рдордиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреБрд╖реНрдЯрд┐ рдХреА рд╣реИ рдХрд┐ testSkillHandler рдореЗрдВ Microsoft/botbuilder-js#2489 рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ рдФрд░ Microsoft Teams рдЪреИрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдкрдиреЗ testSkillHandler рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ processActivity рдкрджреНрдзрддрд┐ рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред

@darrenj & @gabog - рд╣рдордиреЗ C# рдмреЙрдЯреНрд╕ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Microsoft/botbuilder-dotnet#4264 рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдорд╛рдиреНрдп рдХрд┐рдпрд╛ рд╣реИред

рд╣рдорд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг:

  • рд╣рдорд╛рд░реЗ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╢рд╛рдЦрд╛
  • рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдирдореВрдирд╛
  • рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреМрд╢рд▓ рдирдореВрдирд╛

рд░реЗрдкреНрд░реЛ рдХрджрдо:

  1. рджреЛрдиреЛрдВ рдирдореВрдиреЗ рддреИрдирд╛рдд рдХрд░реЗрдВ
  2. рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдХреЛ Ngrok . рдХреЗ рд╕рд╛рде рд╕реЗрдЯрдЕрдк рдХрд░реЗрдВ
  3. рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдХреЛ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЯреАрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
  4. рд╕реНрдХрд┐рд▓ рдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
  5. рджреЛрдиреЛрдВ рдирдореВрдиреЗ рдЪрд▓рд╛рдПрдБ
  6. Microsoft Teams рдореЗрдВ, Virtual Assistant рдХреЛ рдирдорд╕реНрддреЗ рднреЗрдЬреЗрдВ рдФрд░ OnboardingDialog рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВ
  7. рд░рди рд╕реИрдВрдкрд▓ рдбрд╛рдпрд▓реЙрдЧ рднреЗрдЬреЗрдВ, рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдб рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдЧрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рднреЗрдЬреЗрдВ
  8. рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдХреЛ рдПрдХ рдФрд░ рдореИрд╕реЗрдЬ рднреЗрдЬреЗрдВ, рдпрд╣ рдХрд╛рд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА

_рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрди testSkillHandler_ рдХреА рд╕рдХреНрд░рд┐рдпрддрд╛ рд╡рд┐рдзрд┐
image

_рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд░реНрдЪреБрдЕрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЯреАрдореНрд╕ рдЪреИрдирд▓ рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдкрд╣рд▓реЗ рднреЗрдЬреЗ рдЧрдП рдХрд╛рд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ_
image

рд╣рдо рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рдкреНрд░рддрд┐ рдЪреМрдХрд╕ рд░рд╣реЗрдВрдЧреЗ!

рдирдорд╕реНрддреЗ @ рдмрдЯреНрдЯрд╛32 , рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рдЗрд╕реЗ

@ tommyJimmy87 - рдмрд╕ рдкреНрд░рддрд┐рдмрджреНрдз рд╣рдо рдКрдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ!

рд╣рд╛рдп рдлрд┐рд░ рд╕реЗ @ рдмрдЯреНрдЯрд╛ 32 :) рдпрд╣ рднреА рд╣рд▓ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ! рдореИрдВ рдХрд▓ рдХреБрдЫ рдФрд░ рдЧрд╣рди рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдБрдЧрд╛ рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЯреЗрд╕реНрдЯ рд╕реНрдХрд┐рд▓ рд╣реИрдВрдбрд▓рд░ рд╡рд░реНрдЧ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдареАрдХ рд▓рдЧрддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рдзрдиреНрдпрд╡рд╛рдж @ tommyJimmy87! рдЬреИрд╕реЗ рд╣реА рдЖрдк рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

рд╣рд╛рдп @ рдмрдЯреНрдЯрд╛32! рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рд╣рд░реНрд╖ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :)

рдзрдиреНрдпрд╡рд╛рдж @ tommyJimmy87 рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП!

@darrenj - рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдПрд╕рдбреАрдХреЗ рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

manish-95 picture manish-95  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

samaea picture samaea  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jbonet07 picture jbonet07  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

elaine-chang picture elaine-chang  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nestoralonsovina picture nestoralonsovina  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ