除了政府開發資料平台可以讓我們進行介接,強化機器人的功能,仔細在 Google 搜尋,也有一些免費 WebAPI 可以使用。這一篇我們將嘗試介接英文笑話,讓機器人多一點美式幽默(?)。
Step 1. 前往 https://icanhazdadjoke.com/api ,可以看見使用範例,似乎只需要在 header 加上 Accept: application/json、設定 Get 與設定 URL為 https://icanhazdadjoke.com/ 即可。
Step 2. 我們透過 postman 進行測試,相當順利
Step 1. 因為回傳的內容較簡單,只有三個參數,所以直接增加程式碼:
public class RootObject
{
public string Id { get; set; }
public string Joke { get; set; }
public int Status { get; set; }
}
Step 2. 修改RootDialog.cs 程式如下:
using System;
using System.Threading.Tasks;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Connector;
using RestSharp;
namespace JokeBotApplication.Dialogs
{
[Serializable]
public class RootDialog : IDialog<object>
{
public Task StartAsync(IDialogContext context)
{
context.Wait(MessageReceivedAsync);
return Task.CompletedTask;
}
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)
{
var activity = await result as Activity;
if (activity.Text.IndexOf("笑話") >= 0 || activity.Text.IndexOf("joke") >= 0)
{
var client = new RestClient("https://icanhazdadjoke.com");
var request = new RestRequest("", Method.GET);
var response = await client.ExecuteTaskAsync<RootObject>(request);
await context.PostAsync($"{response.Data.Joke}");
}
context.Wait(MessageReceivedAsync);
}
}
public class RootObject
{
public string Id { get; set; }
public string Joke { get; set; }
public int Status { get; set; }
}
}
Step 3. 啟動專案
Step 4.開啟機器人模擬器進行測試,完成!
https://github.com/matsurigoto/BotFrameworkExample04
咦? 這篇怎麼這麼短?