ContinueConversationAsync 401 проблемы с аутентификацией, в то время как прямой разговор работает нормально - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь создать бота в том же стиле, что и проактивный бот из примеров.У меня запущен и работает бот, который успешно может продолжать отправлять сообщения на другие каналы локально, но при развертывании его на Azure все вызовы ContinueConversationAsync выдают 401, что странно, поскольку я могу нормально общаться с ботом, покапоскольку я не пытаюсь общаться с другими разговорами.

Ошибка:

Microsoft.Bot.Connector.Authentication.MicrosoftAppCredentials+OAuthException: Unauthorized 

У меня бот работает и работает правильно при локальном тестировании.

Только когдаЯ развертываю настройку на Azure, получаю ли я эту ошибку.

Так что это проблема аутентификации, но у меня проблемы с ее отладкой, так как прямая связь с использованием эмулятора ngrok + или веб-чата успешно работает, пока я не попытаюсь отправить наодин из других каналов.

Функция продолжения разговора

        private static BotCallbackHandler CreateCallback(string message, CancellationToken cancellationToken)
        {
            return async (turnContext, token) =>
            {
                // Send the user a proactive confirmation message.
                await turnContext.SendActivityAsync(
                    $"{message}",
                    cancellationToken: cancellationToken);
            };
        }

Код для продолжения разговора.

                    conv = turnContext.Adapter.ContinueConversationAsync(
                        AppId,
                        conversation,
                        CreateCallback(requestMessage.Message, cancellationToken),
                        cancellationToken);

Извлечение разговоров из хранилища с использованием хранилища больших двоичных объектов или памятии сериализатор по умолчанию.

Я ожидаю, что робот продолжит старые сохраненные разговоры,но вместо этого я получаю 401 ошибок.

Полная трассировка стека

Microsoft.Bot.Connector.Authentication.MicrosoftAppCredentials+OAuthException: Unauthorized —> System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).
at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
at Microsoft.Bot.Connector.Authentication.MicrosoftAppCredentials.<RefreshTokenAsync>d__36.MoveNext()
— End of inner exception stack trace —
at Microsoft.Bot.Connector.Authentication.MicrosoftAppCredentials.<RefreshTokenAsync>d__36.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Bot.Connector.Authentication.MicrosoftAppCredentials.<GetTokenAsync>d__30.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Bot.Connector.Authentication.MicrosoftAppCredentials.<ProcessHttpRequestAsync>d__29.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Bot.Connector.Conversations.<ReplyToActivityWithHttpMessagesAsync>d__10.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Bot.Connector.ConversationsExtensions.<ReplyToActivityAsync>d__17.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Bot.Builder.BotFrameworkAdapter.<SendActivitiesAsync>d__15.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Bot.Builder.TurnContext.<>c__DisplayClass22_0.<<SendActivitiesAsync>g__SendActivitiesThroughAdapter|1>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Bot.Builder.TurnContext.<SendActivityAsync>d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Bot.Builder.TurnContext.<SendActivityAsync>d__20.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at LBPSkypeBot.LbpSkypeBot.<>c__DisplayClass9_0.<<CreateCallback>b__0>d.MoveNext() in D:\Kode\Robo2\Shared\SkypeBot\SkypeBot\LbpSkypeBot.cs:line 165
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Bot.Builder.MiddlewareSet.<ReceiveActivityWithStatusAsync>d__3.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Bot.Builder.BotAdapter.<RunPipelineAsync>d__13.MoveNext()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...