Приветственное сообщение от чат-бота, которое не запускается мобильным приложением Xamarin.forms - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть чат-бот QnA, размещенный на Azure с использованием Bot Framework v.4. У меня есть приветственное сообщение, которое должно быть отправлено, когда пользователь подключается к боту. В эмуляторе это работает нормально, но когда я пытаюсь подключиться из мобильного приложения xamarin.forms, приветственное сообщение не срабатывает, а отправляется только после того, как пользователь отправил сообщение.

Я довольно новичок в создании ботов, и я не уверен, что это лучшая практика, но в настоящее время у меня есть логика приветствия в моем промежуточном программном обеспечении для моего бота. Вот код:

    public async Task OnTurnAsync(ITurnContext context, NextDelegate next, CancellationToken cancellationToken)
    {
        Activity activity = context.Activity;
        if (activity.Type is ActivityTypes.Message)
        {
          //handle message
        }
        else if (activity.Type == ActivityTypes.ConversationUpdate)
        {
            if (context.Activity.MembersAdded != null)
            {

                    await SendWelcomeMessageAsync(context, cancellationToken);
            }
        }
    }

    private static async Task SendWelcomeMessageAsync(ITurnContext turnContext, CancellationToken cancellationToken)
    {
        //send welcome message when user joins the channel
        foreach (ChannelAccount member in turnContext.Activity.MembersAdded)
        {
            if (member.Id != turnContext.Activity.Recipient.Id)
            {
                Activity reply = turnContext.Activity.CreateReply();
                reply.Text = Strings.WelcomeText;
                await turnContext.SendActivityAsync(reply, cancellationToken);
            }
        }
    }

Для моего мобильного приложения я следовал этому примеру , чтобы создать основу моего мобильного приложения xamarin.

Я предполагал, что в сервисе BotConnector.cs из этого примера этот стартовый код прямого диалога вызовет ConversationUpdate в моей логике бота:

    public async Task SetUpAsync()
    {
        if (!started)
        {
            BotConversation = await Client.Conversations
                .StartConversationAsync().ConfigureAwait(false);
            started = true;
        }
    }

Однако приветственное сообщение никогда не запускается, как предполагалось, и вместо этого отправляется с другим действием, как только пользователь отправляет сообщение первым.

Есть ли что-то другое, что вам нужно сделать в Xamarin, чтобы вызвать ConversationUpdate в моей логике бота?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...