我的机器人工作在Slack,Skype和模拟器中接收和发送信息。
然而,当我点击机器人门户网站(https://dev.botframework.com/)中的蓝色“测试”按钮时,它会向我显示错误消息" Microsoft App ID的授权my_id_is_replacedhere失败,状态代码为Forbidden"
完整错误如下。
当我使用端点https://slack.botframework.com/和Conversations.SendToConversation()方法向Slack发送预定消息时,我也得到了相同的错误。这用来工作,测试按钮用于成功。
为什么我收到此消息?是否有一个破坏它的NuGet pkg更新? 我查看了故障排除指南,但其他一切似乎都有效。
谢谢
InternalServerError {" message":"发生了错误。", " exceptionMessage":" Microsoft App ID的授权 my_id_is_replacedhere失败,状态码为Forbidden", " exceptionType":" System.UnauthorizedAccessException"," stackTrace":" 在 Microsoft.Bot.Connector.JwtTokenRefresher.d__2.MoveNext(个)\ r \ n --- 从抛出异常的先前位置开始的堆栈跟踪结束 --- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\ r \ n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\ r \ n at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务)\ r \ n 在 Microsoft.Bot.Connector.Conversations.d__8.MoveNext(个)\ r \ n --- 从抛出异常的先前位置开始的堆栈跟踪结束 --- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\ r \ n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\ r \ n at Microsoft.Bot.Connector.ConversationsExtensions.d__19.MoveNext(个)\ r \ n --- 从抛出异常的先前位置开始的堆栈跟踪结束 --- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\ r \ n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\ r \ n at System.Runtime.CompilerServices.TaskAwaiter1.GetResult()\ r \ n at Grasp.MessagesController.d__0.MoveNext()in C:\代码\ Relegraph_Git \ GraspThree \抓住\ \控制器MessagesController.cs:行 55 \ r \ n ---来自先前位置的堆栈跟踪结束异常 被扔了--- \ r \ n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\ r \ n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\ r \ n at System.Threading.Tasks.TaskHelpersExtensions.d__3`1.MoveNext(个)\ r \ n --- 从抛出异常的先前位置开始的堆栈跟踪结束 --- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\ r \ n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\ r \ n at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext(个)\ r \ n --- 从抛出异常的先前位置开始的堆栈跟踪结束 --- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\ r \ n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\ r \ n at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext(个)\ r \ n --- 从抛出异常的先前位置开始的堆栈跟踪结束 --- \ r \ n在System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()\ r \ n --- 从抛出异常的先前位置开始的堆栈跟踪结束 --- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\ r \ n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\ r \ n at System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext(个)\ r \ n --- 从抛出异常的先前位置开始的堆栈跟踪结束 --- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\ r \ n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\ r \ n at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext(个)\ r \ n --- 从抛出异常的先前位置开始的堆栈跟踪结束 --- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\ r \ n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\ r \ n at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()" }
答案 0 :(得分:2)
尝试使用
MicrosoftAppCredentials.TrustServiceUrl(notify.ServiceUrl, DateTime.MaxValue);
之前
connector.Conversations.SendToConversationAsync(...)
答案 1 :(得分:1)
我弄清楚导致错误的原因。显然,机器人门户网站中的“测试”按钮会向机器人发送“Ping”消息。在我的MessagesController代码中,我试图回复每条消息,如下所示:
ConnectorClient connector = new ConnectorClient(new Uri(Act.ServiceUrl), appcred); Activity reply = Act.CreateReply(replymsg); connector.Conversations.ReplyToActivity(reply);
然而 - 当我为Ping类型的Activity(Activity.Type = ActivityTypes.Ping)执行此操作时,我得到上述错误。当我忽略Ping消息时,Test按钮会起作用。
当我按照计划向Slack发送消息时收到相同的错误(没有要回复的传入消息)时,我仍然遇到了问题。我使用Slack的WebAPI解决了这个问题:
https://slack.com/api/chat.postMessage?token= {0}&安培;信道= {1}&安培;文本= {2}&安培; as_user = {3}