發表文章

目前顯示的是 2019的文章

用C#開發 LINE Bot (34) - 以.net core控制LINE Bot發送Push訊息

圖片
接續著 上一篇 介紹如何用 .net core的WebAPI來建立 LINE Bot WebHook,這一篇我們介紹如何使用 .net core的 razor page web app來建立發送(push)訊息的LINE Bot。 請先確定你使用的是.net core 3.0以上(建議3.1)的版本: 接著透過『dotnet new webapp -n test01』指令,來建立一個新的WebApp: 建立完成之後,別忘了先透過CD test01指令切到專案所在的資料夾,然後我們用底下指令,來安裝幾個套件: dotnet add package isrock.web.core.razor 執行結果如下: 接著是重要的步驟,請利用底下指令,安裝我們在nuget上的linebot範本: dotnet new --install isRock.Template.LineBotPush 成功執行之後,請繼續執行底下指令: dotnet new LineBotPush 你會看到該範本的程式碼已經加入我們專案中了,接著,我們用 『code .  』指令來開啟vs code: 你會看到專案中已經有我們寫好的範例程式碼。現在已經可以執行了。 請在VS Code的終端機中,用dotnet run執行這個WebApp: 開始運行之後,你就可以在瀏覽器中,以 https://localhost:5001/__samplelinebot 網址來執行該頁面: 您可以在上面這個頁面中,輸入channel access token, user id…等資訊,當然還有要傳送的訊息,按下Push即可發送訊息。 程式碼相當簡單: 詳細的操作影片可以參考底下: ----------- 線上課程: https://www.udemy.com/line-bot/ 最新實體課程: http://www.studyhost.tw/NewCourses/LineBot 電子書: http://studyhost.blogspot.tw/2017/12/line-bot.html   實體書: https://www.tenlong.com.tw/products/9789865022662?list_name=srh LineBotSDK: https://www.nuget.org/packages/Li

用C#開發 LINE Bot (33) - 以.net core 3.1在30秒內建立WebHook

圖片
習慣使用.net framework的開發人員可能會覺得,用.net core開發LINE Bot比起傳統的.net要難上一些,甚至覺得沒有Visual Studio好像總是不很方便。倘若告訴你,其實使用 .net core開發LINE Bot要比傳統 .net 快得多,信不信? 底下就挑戰一下如何在安裝好 .net core 3.1的環境中30秒內建立一個 LINE Bot WebHook囉。 首先, 在命令列使用底下這行指令可以幫你建立一個空的WebAPI專案: dotnet new webapi -n test01 然後切換到 test01 這個資料夾中。 cd test01 接著執行: dotnet add package LineBotSDK 上面這行指令會幫你剛才建立好的WebAPI專案添加最新版的LineBotSDK套件。 接著,請執行底下這行: dotnet new --install isRock.Template.LineWebHook 上面這行指令如果成功執行,系統會從網路上下載一個範本套件,安裝到你的開發環境上,上面這行指令只需要執行一次,除非套件有更新,否則以後就毋須重複執行。 正確的執行完畢之後,接著你就可以執行底下這行指令: dotnet new linewebhook 上面這行指令會為你的WebAPI專案,添加一個LineWebHook範本程式碼,完成後顯示如下: 這時候,你可以在命令列下 code . 以visual studio code開啟剛才建立好的專案: 開啟Visual Studio Code後,你會發現剛建立好的WebAPI專案中,已經包含一個預先寫好的LineWebHookController.cs,這是透過前面 dotnet new linewebhook 這行指令產生的: 接著,您只需要將程式碼中第21行的ChannelAccessToken換成你LINE Bot的ChannelAccessToken,將16行的AdminUserID換成你的Admin User ID就完成囉。 哇啦,你的.net core 3.1版LINE WebHook寫完了。碼表停止。 要不要挑戰看看?你能不能在30秒內完成?嚴格說起來,指令只有底下幾行: dotnet new webapi –n [專案名稱] cd [專案名稱] dotn

LINE Developer Day 2019 現場筆記 (三) – LINE Bot 與 DevOps

圖片
前面 提過,LINE是一家非常熱愛Open Source的公司,諸多的solutions中,十有八九是藉由純Open Source技術來實現的,你很少很少很少看到其他軟體大廠的服務在LINE出現。也因此,當我在議程表當中,看到有Microsoft相關的場次時,不由得眼睛一亮,身為MVP,說什麼我也得前往瞧瞧… 議程表當中,共有兩個與Azure有關的場次,一場是由Kenichiro Nakamura分享的How to optimize bot development lifecycle with DevOps(這場非常有意思,我待會說),另一場則是Ayako Omori的Developing chatbot with Cloud 101 for LINE account auto-reply,兩場都是純日文演說,我也都硬著頭皮參加了。 Bot Framework Ayako Omoris那一場是少數沒有英文即時翻譯的日文演說,導致我基本上是完全聽不懂講者在說什麼,不過,我卻大致可以掌握整場的內容。很矛盾? 一點也不。 因為內容是我非常熟悉的Azure Cognitive Services與Bot Framework,我發現技術語言是跨國籍的,我雖然完全聽不懂講者的日文,但只看Demo和操作,基本能夠掌握八成左右(所以如果讀者想去國外工作,大可不用過度擔心語文的問題),講者除了大致完整的介紹了MS Bot Framework與LINE Bot如何整合,還有如何使用LUIS和QnA Maker服務,這些過去我在 書籍 和 線上課程 中大致也都有介紹,講者能在幾十分鐘的時間內把這些內容都塞進去,也算是不容易了。 除此之外,她也提到了MS最近釋出的 BotFramework-Composer (這就是個新玩意了): Bot Framework Composer是一套 open source 的Chat Bot設計工具,可以讓你用視覺化的方式來建立Chat Bot。除了支援上圖這樣的所視及所得對談設計界面,也支援LUIS和QnA Maker,讓設計人員可以自由的使用這些雲端服務並整合在Bot當中,雖然目前還只是預覽版本,但未來頗值得期待。我知道台灣坊間也不乏這樣的工具,但掛著微軟的招牌,加上又是open source,背後有MS Bot Framework撐腰,又有自然語言語意

LINE Developer Day 2019 現場筆記 (二) - 關於LIFF的改變與未來

圖片
我在現場看到LINE日籍講師使用 VS Code作為主要的開發工具,還頗讓人驚豔的 緣起 前陣子,LINE推進了LIFF這個框架來到 v2的版本 ,v1到v2是一個很大的改變,一般來說,我們改變主版號(from 1 to 2)意味著新釋出的版本將跟前一版有著不相容性,也就是一個重大的breaking changes,也確實,v2版本增加了很多亮眼的新功能,像是QR Code掃描、外部瀏覽器支援…等。 還不只如此,LINE 11/11發布了一個我認為很重大的 消息 : Users can no longer add LIFF apps to Messaging API channels 看到這個消息的第一眼,我只有一堆問號…,WHY? 為何LIFF 2未來只能從LINE Login新增LIFF,為何將要取消過去LIFF綁在Bot(Messanging API)身上的方式??? 我相信不只我有這個疑惑,很多熟悉LIFF的開發人員也是。我心裡始終帶著這些問號,來參加了今年的LINE Developer Day,當然,我希望能找到答案。 LIFF的改變 在Day 2關於LIFF的場次中,講師不免俗地把LIFF的歷史交代了一下: 其實從v1到v2也不過就是一年的時間,但重點當然不是歷史啊,重點是改變。到底有那些改變呢? 那得看當前的LIFF有些什麼: 上面這三張看似平淡無奇的投影片,其實是接下來講者埋的梗,我得說,後面看到差異的時候,是頗讓人興奮的。上面第一張投影片的Easy Development是理所當然,LIFF可以透過純HTML方式開發,且運行上是無需伺服器端的,但我們也知道,當前的LIFF只能運行在LINE的WebView環境,即便是開發方式和一般的HTML頁面相同,你還是會碰到像是開發階段難以debug之類的困擾。 是的,v1的LIFF是很難偵錯的,因為你必須在手機環境上(LINE的內部WebView)才能執行。我忍不住直接破梗好了,講者在最後ending的時候,上面第一張slide變成了: with LIFF v2,你可以在手機的外部瀏覽器上運行,這也表示,你有機會可以在一般的瀏覽器上進行開發和除錯。對,你沒聽錯,過去非得在手機裡測試偵錯的時代即將過去了,當你用LIFF v2架構開發搭配SDK,基本上你的開發根本就像是一個純Web Application(只是這

LINE Developer Day 2019 現場筆記 (一) - 看見LINE、開發者、未來

圖片
過去幾年,我身邊很多軟體開發人員,要嘛往大陸發展,要嘛待歐美棲身,但LINE選擇的路線,卻給了我一個不同的啟發… 今年 的LINE Developer Day依舊位於東京舉辦,不過較之過往,擴大為兩天的議程,在keynote當中,講者有提到今年改為兩天的原因。總的來說,過去想說的事情多,能用的時間少,所以今年改為兩天乃是天經地義、理所當然(但…費用不就增加了一倍? )。 話雖然這麼說,但我其實一直對LINE的工程師文化很好奇,一個保有傳統謹慎保守基因的日系公司,怎麼去塑造一個對開發人員如此友善的開放文化? 你如果到日本東京新宿LINE辦公室的開放空間,會看到底下這樣的場景: 充滿自在氛圍的空間裡,有著喝咖啡寫程式的Developer、有著接洽外來訪客的員工、甚至放空休息的夥伴…在同一個空間裡,自在且互不打擾的完成自己當下的任務。 這種自由開放的氛圍很像這兩天的大會,當你仔細觀看,不難發現 議程表 上的內容,絕大部分都是LINE員工們真實開發經驗的分享,其中少數才是LINE相關產品和服務的介紹,這跟過去我們看到由企業主辦的年度大拜拜聚會完全不同,更有點像是open source社群聚會的感覺。 透過 上百個議程 ,講者竭盡所能的,把自身的開發經驗,分享給與會的其他開發人員: 這些議程當中,大部分是LINE如何透過open source開發技術,實現自身所需的商務需求、以及自己在採用open source技術所碰到的挑戰與解決方案,那這些議程是怎麼決定的呢? 我問了來自台灣LINE團隊的講者,這些議程主題怎麼決定的? 台灣LINE團隊的講者跟我說,大部分都是由LINE員工投稿,獲選後由LINE贊助講者參加大會,一聽之下,發現身為LAE的我們,平白享有免費三天的東京飯店+來回機票,看起來待遇似乎比LINE自己的員工還好呢~ 其中有個頗有趣的地方,由於LINE大量的使用了open source技術,對於過去很少接觸 OSS 的微軟 .net 開發人員來說,參加LINE的聚會會讓你突然恍如置身到另一個世界中的感覺,議程當中許多過去在 .net 世界中沒有的東西,霎那間頗有讓人目不暇給之感。 今年的場地改在台場日航飯店舉辦,這個地點是著名的觀光勝地,搭地鐵前往的路上,電車上路過的海景頗讓人心曠神怡。當天天氣很好,廣場上藍色的天空讓人一覽無遺。 到了夜晚,當地頗具盛名的購物中心和