[英]C# Bot framework - Resource not found Error
我使用bot框架構建了一個小型的基本Web bot應用程序,並希望將其部署在Azure上。 我已經按照所有步驟操作,並且在Azure Portal的“在Web聊天中測試”下也可以正常工作,但是當我打開機器人的端點時
https://optlbot.azurewebsites.net/api/messages
我說錯了
The requested resource does not support http method 'GET'
有人可以幫我嗎,我根本無法調試我的應用程序。 我也在模擬器上進行了測試,它也可以正常工作。
是的,URL https://optlbot.azurewebsites.net/api/messages僅適用於POST
請求而不是一個GET
請求,因為你從用戶到機器人而不是一個GET 發布一條消息,你可以看到,在MessagesController
代碼。
話雖如此,如果您想在本地測試您的機器人,則必須使用模擬器。 您可以同樣查看Bot模擬器 。
現在,如果您想將Bot發布給全世界,以便其他人可以看到並使用它,那么渠道就在這里。考慮將Channel作為一種媒介,您可以通過它使您的Bot供其他人使用,以提供更好的用戶體驗。
該機器人有多個發布渠道,是的,您可以在所有渠道中發布同一機器人。 webchat只是一個頻道,默認情況下已啟用該頻道,查看方式是:
因此,嵌入代碼實際上是一個iframe,您可以將其放置在您的網站中或與其他想使用您的漫游器的人共享。 或者,您也可以使用iFrame的src
直接訪問該機器人。
同樣,這只是一個通道。 您可以查看“ 配置渠道”文檔,了解在更多渠道(如Skype,Microsoft Teams,電子郵件,Facebook,Slack,Telegram等)中啟用漫游器的步驟。
如果檢查MessagesController
的代碼,則會在控制器中找到以下定義的操作,它僅接受POST請求並從請求正文中讀取activity
的值,它不支持http方法GET 。
/// <summary>
/// POST: api/Messages
/// Receive a message from a user and reply to it
/// </summary>
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
await Conversation.SendAsync(activity, () => new Dialogs.RootDialog());
}
else
{
HandleSystemMessage(activity);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.