1

私のボットは、Slack、Skype、およびエミュレーターでメッセージを正常に送受信します。

ただし、ボット ポータル ( https://dev.botframework.com/ ) で青い [テスト] ボタンをクリックすると、"Authorization for Microsoft App ID my_id_is_replacedhere failed with status code Forbidden" というエラー メッセージが表示されます。

完全なエラーは以下です。

エンドポイントhttps://slack.botframework.com/と Conversations.SendToConversation() メソッドを使用してスケジュールされたメッセージを Slack に送信すると、同じエラーが発生します。これは以前は機能し、[テスト] ボタンは成功していました。

このメッセージが表示されるのはなぜですか? それを壊した NuGet pkg 更新はありますか? トラブルシューティング ガイドを確認しましたが、それ以外はすべて機能しているようです。

ありがとうございました

"message": "エラーが発生しました。 Bot.Connector.JwtTokenRefresher.d__2.MoveNext()\r\n--- 例外がスローされた前の場所からのスタック トレースの終わり ---\r\n System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) で\r\n System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (タスク タスク) で\r\n System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (タスク タスク) で\r\n Microsoft.Bot.Connector.Conversations.d__8 で.MoveNext()\r\n--- 例外がスローされた前の場所からのスタック トレースの終わり ---\r\n System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) で\r\n System.Runtime で.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Bot.Connector.ConversationsExtensions.d__19.MoveNext()\r\n--- 例外がスローされた前の場所からのスタック トレースの終わり ---\ r\n System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(タスク タスク)\r\n System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスク タスク)\r\n System.Runtime.CompilerServices.TaskAwaiter1.GetResult( )\r\n at Grasp.MessagesController.d__0.MoveNext() in C:\Code\Relegraph_Git\GraspThree\Grasp\Controllers\MessagesController.cs:行 55\r\n--- 例外がスローされた前の場所からのスタック トレースの終わり ---\r\n System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) で\r\n System.Runtime で。 CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Threading.Tasks.TaskHelpersExtensions.d__3`1.MoveNext()\r\n--- 例外がスローされた前の場所からのスタック トレースの終わり --- \r\n System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(タスク タスク)\r\n System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスク タスク)\r\n System.Web.Http.Controllers.ApiControllerActionInvoker .d__0.MoveNext()\r\n--- System.Runtime.CompilerServices.TaskAwaiter で例外がスローされた前の場所からのスタック トレースの終わり ---\r\n。ThrowForNonSuccess(タスク タスク)\r\n で System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスク タスク)\r\n で 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(Task task) で \r\n System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) で\r\n System.Web でスローされました。 Http.Filters.ActionFilterAttribute.d__0.MoveNext()\r\n--- 例外がスローされた前の場所からのスタック トレースの終わり ---\r\n System.Runtime.CompilerServices.TaskAwaiter で。ThrowForNonSuccess(タスク タスク)\r\n で System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスク タスク)\r\n で System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()\r\n---例外がスローされた前の場所からのスタック トレースの終了 --- \r\n System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) で\r\n System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) で\r\n System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext() で" }Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(タスク タスク)\r\n で System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスク タスク)\r\n で System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()" }Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(タスク タスク)\r\n で System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスク タスク)\r\n で System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()" }

4

2 に答える 2

1

エラーの原因がわかりました。どうやら、ボット ポータルの [テスト] ボタンは、"Ping" メッセージをボットに送信します。私の MessagesController コードでは、次のようなものですべてのメッセージに返信しようとしていました:

                        ConnectorClient connector = new ConnectorClient(new Uri(Act.ServiceUrl), appcred);
                        Activity reply = Act.CreateReply(replymsg);
                        connector.Conversations.ReplyToActivity(reply);

ただし、アクティビティの Ping タイプ (Activity.Type=ActivityTypes.Ping) に対してこれを行うと、上記のエラーが発生します。Ping メッセージを無視すると、[テスト] ボタンが機能します。

スケジュールに従って Slack にメッセージを送信するときに同じエラーが発生した場合 (返信する受信メッセージがありません)、まだ問題がありました。Slack の WebAPI を使用して、この問題を回避しました。

https://slack.com/api/chat.postMessage?token= {0}&channel={1}&text={2}&as_user={3}

于 2016-12-25T18:57:25.167 に答える