конечно я сделал. Не работает Видимо ошибка не связана с тем, как создается диалог
я есть бот, построенный на BotFramework 3.5 и размещенный на Azure как веб-приложение. У меня не было проблем с реализацией сценариев, когда бот должен реагировать на ввод пользователя. Однако необходимо научить его начинать разговоры по какому-то графику. Чтобы достичь цели, я создал WebJob - простое консольное приложение. Вот код, используемый для инициирования сообщения от бота пользователю:
var botAccount = new ChannelAccount(id: from);
var userAccount = new ChannelAccount(id: to);
var conversation = new ConversationAccount(false, conversationId);
var connector = new ConnectorClient(serviceUrl);
IMessageActivity message = Activity.CreateMessageActivity();
message.From = botAccount;
message.Recipient = userAccount;
message.Conversation = conversation;
message.Text = text;
message.Locale = locale;
await connector.Conversations.SendToConversationAsync((Activity)message);
from, to, serviceUrl, conversationId
- взяты из предыдущего разговора, поэтому я ожидаю, что они действительны. Однако наSendToConversationAsync
исключение выдается:
System.UnauthorizedAccessException: Authorization for Microsoft App ID 3a26a4d4-f75a-4feb-b3e0-37a7fa24e5fc failed with status code Unauthorized and reason phrase 'Unauthorized' ---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized)
Файл app.config содержит те же значения, что и исходный API-интерфейс бота, включая AppId и AppSecret. Я видел несколько вопросов, поднятых на ту же тему, но не смог найти ответ.
Я что-то пропустил? Это правильный подход для отправки сообщений от имени бота из консольного приложения?