iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 11
0

前言

除了政府開發資料平台可以讓我們進行介接,強化機器人的功能,仔細在 Google 搜尋,也有一些免費 WebAPI 可以使用。這一篇我們將嘗試介接英文笑話,讓機器人多一點美式幽默(?)。


使用 icanhazdadjoke 服務

Step 1. 前往 https://icanhazdadjoke.com/api ,可以看見使用範例,似乎只需要在 header 加上 Accept: application/json、設定 Get 與設定 URL為 https://icanhazdadjoke.com/ 即可。
https://d2mxuefqeaa7sj.cloudfront.net/s_C1F27E4A305853187089CFFEEEB0EC825EC953E20DB092E2C330DA14FE7A7267_1513093454057_image.png

Step 2. 我們透過 postman 進行測試,相當順利
https://d2mxuefqeaa7sj.cloudfront.net/s_C1F27E4A305853187089CFFEEEB0EC825EC953E20DB092E2C330DA14FE7A7267_1513095353999_image.png


程式

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. 啟動專案
https://d2mxuefqeaa7sj.cloudfront.net/s_4BD31EC08DAC6681F125ECB2893F87311C2A9E8644E7E0D9FAA1622819FD5464_1512918057038_image.png

Step 4.開啟機器人模擬器進行測試,完成!
https://d2mxuefqeaa7sj.cloudfront.net/s_C1F27E4A305853187089CFFEEEB0EC825EC953E20DB092E2C330DA14FE7A7267_1513181747704_image.png


範例

https://github.com/matsurigoto/BotFrameworkExample04


咦? 這篇怎麼這麼短? /images/emoticon/emoticon17.gif


上一篇
10.應用:自用空氣品質資訊機器人
下一篇
12.應用:自用 Google calendar 查詢機器人 TL;DR
系列文
利用 MS Bot framework 與 Cognitive Service 建構自用智慧小秘書31

尚未有邦友留言

立即登入留言