跳到主要內容

發表文章

目前顯示的是有「Bot Framework」標籤的文章

手把手教學, 十分鐘內快速建立Line Bot

前言 相對以前來說, 現在要建一個LINE Bot已經變得非常簡單了, 尤其是最近微軟的Bot Service提供LINE的支援, 對使用微軟Bot Framework的開發者來說, 可以省去不少功夫去串接LINE 基本上使用Bot Framework來建立一個LINE Bot有幾個步驟 建立一個BOT 建立LINE BOT帳號 設定LINE頻道 串接LINE與Azure Bot Service 建立一個BOT 關於如何建立可以參考之前的 文章 啟用LINE的頻道 建立LINE BOT專用帳號 要開啟賴的通道首先必須要在賴的平台上替機器人建一個帳號 https://developers.line.biz/console/register/messaging-api/provider/ 建立Provider 這邊我們需要給他一個名字 選擇Message Api, 然後建立頻道 給個名字, 然後下方選擇Developer Trial Developer 跟Free最大的差別是Free沒有推送訊息的權限, 所以如果你選擇Free, 那你的Bot就相當於有耳朵但是卻沒有嘴巴 而這個問題可以透過升級為付費模式來解決 相反的Developer有嘴巴也有耳朵的權限, 但是他不能透過升級來獲得更多的權限 填入你的電子郵件後按同意, 完成後會看到你剛剛建立的賴帳號 進入賴帳號, 繼續接下來的設定 接下來我們要開始將Azure Bot Service跟賴串起來 卷軸往下滾找到~Channel Secrete 回到Azure Bot Service上, 把Channel Secrete 填上去 接下來複製下面 Webhook URL , 然後再回到賴的頁面 卷軸繼續下拉到 Message Setting 這部分有四個步驟 1. 依序是設定Webhook URL, 把剛剛在Azure上複製的URL給貼上去 2. 啟動 Use Webhook 3. 取得Channel access token 4. 啟動 Allow bot to join group chats 複製在步驟...

使用Azure cli 建立對話式聊天機器人(Bot Service)

前言 如果覺得使用Azure Portal建立Bot很麻煩的話, 不妨試試看用Azure Cli, 以指令的方式來建立 以下教學如何使用Azure cli 快速建立一個Bot 前置作業: 需要先在開發機上安裝Azure cli的套件 https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-windows?view=azure-cli-latest 註冊新的應用程式 每隻Bot應用都需要先在微軟的App Portal註冊, 之後會取得APP ID 以及Public key (https://apps.dev.microsoft.com/portal/register-app) Public Key 這組密鑰需要自己手動按下 Generate New Password 去產生, 得到之後記得要好好保存, 因為它只會在UI上顯示一次 如上圖所示, 以上步驟完成後會可以得到App ID\Public key, 當後端程式(Bot邏輯)與Azure Bot  Connector Service溝通時會需要App ID\Public key來認證身分 在雲上建立Bot Service 登陸azure az login 建立資源群組(若使用既有群組,可以省略) az group create --name BotResourceGroup --location "West US" 建立bot 相關資源 az bot create --resource-group "BotResourceGroup" --name "andy-test-bot" --kind "function" --description "description-of-my-bot" --appid <YOUR_APP_ID> --password <YOUR_PUBLIC_KEY> appid , password 記得換成剛剛取得那組帳密 kind - 目前有三種資源方案function, registr...

[C#] 實作如何讓Cortana Skill 呼叫UWP

前言 當我們在實作Cortana Skill的時候, 我們可以將雲上的資料回傳給Cortana 並且顯示在Canvas上 來跟使用者互動 但實務上, 有些情況因為Canvas本身的限制, 所以需要再刻一個負責前端的UWP來顯示Skill回傳的資料 以下即介紹如透過實作UWP的 Deep link使之與 Cortana 互動 UWP的部分 設定Protocol 右鍵 Package.appxmanifest 選擇 View Code 加入 <Extensions> <uap:Extension Category= "windows.protocol" > <uap:Protocol Name= "YOUR_URL" > <uap:DisplayName> " YOUR_NAME " </uap:DisplayName> </uap:Protocol> </uap:Extension> </Extensions> 這邊假設 YOUR_URL = skill.mytest.clien YOUR_NAME = mytest 複寫OnActivated 當程式被Cortana叫起來時, 這個函式會被執行 複寫它, 使之將頁面切換至相應的頁面 var protocolArgs = args as ProtocolActivatedEventArgs; rootFrame.Navigate( typeof (Views.ListPhotos), protocolArgs.Uri.Query); 如範例所示, 我們會將頁面導向到 Views .ListPhotos Views.ListPhotos複寫OnNavigatedTo 讓我們在導向至這個頁面的時候, 可以先去載入相關資料 protected overrid...

[Bot Framework] How to reply an image

There are 2 ways to achieve that goal. First one, pass image url to channel if my source url is like http://abc.com/dog.png                var reply = context.MakeMessage();                                reply.Attachments.Add(new Attachment                 {                     ContentUrl = $" http://abc.com/dog.png ",                     ContentType = "image/png",                 }); Pass base64 encoded image data                 Stream fs = File.OpenRead("C:\\dog.png");                 byte[] img = fs.ToArray();        ...

[C#]Make Cortana speak Dialog prompt

This article focuses on how to make Cortana speak PromptDialog. It's quite simple, we have to specify message spoken by Cortana in PromptOption.speak and pass PromptOption to PromptDialog.Confirm() or PropmtDialog.Choice. Prompt Choice Prompt Confirm If you don't want show option on the canvas you can empty PromptOption.options field from the code. Reference: https://docs.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-text-to-speech https://docs.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-cortana-skill https://docs.microsoft.com/en-us/dotnet/api/microsoft.bot.builder.dialogs.promptoptionswithsynonyms-1.-ctor?view=botbuilder-3.11.0

[Bot Framework] Card 使用教學(一) ThumbnailCard

前言: 微軟的Bot Framework除了提供一般的文字回應之外, 也支援開發者們把文字圖片以及按鈕, 一同封裝在Card的物件裡, 然後再回傳給前端的Channel, 前端的使用者就能透過Card來跟我們Bot互動 在官方的API文件裡, 可以發現IMessageActivity有一個Attachments的屬性, 所以如果想要回應一個Card, 只要把Card實體塞到IMessageActivity.Attachments的集合裡面, 就能把Card回應給使用者 目前微軟Bot Framework提供了許多種Card的形式, 而我比較常用的是HeroCard, ThumbnailCard,  SignInCard. 而今天要介紹的是HeroCard, ThumbnailCard ThumbnailCard ThumbnailCard的作用是讓你顯示一張小圖搭配文字描述 基本上建立ThumbnailCard的方法如下 定義CardImage 定義CardAction 在這個CardAction裡面,  我們定義一個按鈕, 當這個按鈕被按下去的時候, 會開啟網頁 建立ThumbnailCard實體 加到IMessageActivity.Attachments裡 完整程式碼範例如下

[Bot Framework] Azure Bot Service with QnA Marker

How to make a bot with QnA Marker on Azure and let it speak through Cortana: Step1. Create a bot service on azure. Step2. Select the Basic template Step3. Open Project.json and make sure Microsoft.Bot.Builder.Azure is higher than 3.2.2 {   "frameworks": {     "net46":{       "dependencies": {         "Microsoft.Bot.Builder.Azure": "3.2.2"       }     }    } } Step4. Open EchoDialog.csx Step5. Override StartAsync to: Step6. Override MessageReceivedAsync to process incoming messages and get answer from QnA Maker Step7. Add the following code to get answer from QnA Marker