Bot Framework在创建对话时未经授权

时间:2017-05-16 20:01:21

标签: c# botframework

我正在尝试从Web作业恢复机器人和用户之间的对话,而我正在获得未经授权的例外。 我可以成功回复我的MessagesController类中的对话,但是当我尝试在我的Web作业中运行以下代码时,我得到以下异常:

list[:1]

例外是:

    private static async Task SendAlertToUser(ChannelAccount botAccount, LipSenseUser user, AlertFlags alert, string extra)
    {
        Console.WriteLine($"Sending alert to user: {user.Name}");
        var sb = new StringBuilder(GetTextFromAlert(alert));
        if (!string.IsNullOrEmpty(extra))
        {
            sb.AppendLine();
            sb.Append(extra);
        }

        var userAccount = new ChannelAccount(user.ChannelId, user.Name);
        var connector = new ConnectorClient(new Uri(user.ChannelUri));

        var message = Activity.CreateMessageActivity();
        message.From = botAccount;
        message.Recipient = userAccount;

        var conversation = await connector.Conversations.CreateDirectConversationAsync(botAccount, userAccount);

        message.Conversation = new ConversationAccount(id: conversation.Id);
        message.Locale = "en-Us";
        message.Text = sb.ToString();

        await connector.Conversations.SendToConversationAsync((Activity)message);
    }

当我检查连接器的凭证时,我发现一切都是正确的。我在我的MessagesController中设置了一个断点,并从那里检查了连接器的凭据,一切都是相同的。

另外,当我查看IntelliTrace时,我看到以下消息:

Bot Framework IntelliTrace Errors

我的user.ChannelUri是“https://facebook.botframework.com”,我在用户初始化对话时将其取消。那不是正确的Uri吗?

发送邮件还需要做些什么吗?我的App.config appSettings看起来像这样:

Exception:System.UnauthorizedAccessException
Authorization for Microsoft App ID 58c04dd1-1234-5678-9123-456789012345 failed with status code Unauthorized and reason phrase 'Unauthorized'

1 个答案:

答案 0 :(得分:4)

Bot Framework Team在另一个频道上的回答:

  

您需要添加致电:

     

MicrosoftAppCredentials.TrustServiceUrl(serviceUrl);

     

这是在您回复邮件时自动完成的,但是   来自您需要执行此操作的其他流程的主动消息。