Iniciar uma mensagem do bot para o usuário no BotFramework
Eu tenho um bot criado no BotFramework 3.5 e hospedado no Azure como um WebApp. Não enfrentei nenhum problema com a implementação de cenários em que o bot precisa responder à entrada do usuário. No entanto, é necessário ensiná-lo a iniciar as conversas de acordo com algum cronograma. Para atingir o objetivo, criei um WebJob, que é basicamente um aplicativo simples para console. Aqui está um código usado para iniciar uma mensagem do bot para o usuário:
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
- são retirados da conversa anterior, então espero que sejam válidos. No entantoSendToConversationAsync
exceção é lançada:
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)
O arquivo app.config contém os mesmos valores da API bot original, incluindo AppId e AppSecret. Vi algumas perguntas levantadas sobre o mesmo tópico, mas não consegui encontrar uma resposta.
Estou esquecendo de algo? É uma abordagem válida para enviar mensagens em nome de bot a partir do aplicativo do console?