[研討會心得] 2020/06/12 LINE Developer Meetup 12

前提 大家好,我是 LINE Taiwan DevRel 團隊的 Evan Lin。很開心在這裡跟各位分享本年度的第二場開發者小聚。 由於新冠肺炎疫情影響,此次的活動改為線上活動並且透過 LINE OA Live 的方式播放給所有的參與者了解,也在後續會官方粉絲專頁與官方的開發者 Youtube 頻道開放完整的影片給想要參與的開發者共襄盛舉。 KKTIX 活動網頁: 活動網址 本次 LINE Developer Meetup 開發者小聚,有邀請到兩位講者來分享關於 LINE 平台的開發經驗。首先由 LINE TAXI CTO Hayden Huang 來跟大家分享 LINE TAXI 的開發經驗 「LINE TAXI from 0 to 1」。 第二位邀請到 DeepQ Technology Corp. Tony Huang 黃振綸 來跟大家介紹什麼是「疫止神通」。 LINE TECH FRESH (LINE 技術新星人才計劃) 學生實習計畫宣傳 / 資深開發技術推廣工程師 - Evan Lin 首先上場的就是筆者,並且來分享 LINE TECH FRESH 計畫給莘莘學子瞭解。 LINE 台灣工程團隊每年透過 LINE TECH FRESH – 技術新星人才計劃,招募資訊科技相關科系,或對此領域有所涉略的大學生 / 研究生加入 LINE 團隊進行長期實習 (一年期),讓同學們能在國際級科技公司中觀摩學習。 更多內容,可以參考這篇文章: LINE TECH FRESH – 技術新星人才計劃,實習經驗大公開 LINE TAXI from 0 to 1 / LINE TAXI - CTO Hayden Huang 緊接的第二位講者就是 LINE TAXI 技術漲 Hayden 所帶來的 “LINE TAXI from 0 to 1” 的技術分享。 LINE TAXI 簡介 「LINE TAXI叫車平台」與台灣新創團隊TaxiGo合作,將原有「TaxiGo叫車平台」改版升級後,於今天正式更名為「LINE TAXI叫車平台」。而TaxiGo於線下經營的實體車隊,則持續由TaxiGo團隊運營。 TaxiGo是原生台灣的新創團隊,主打以LINE聊天機器人叫車,提供準確即時、安全舒適的叫車服務,在2017年創立,並即加入「LINE新星計畫」(網址 https://protostar.line.me/zh-tw/ )接受育成輔導。 除了線上叫車平台,TaxiGo也同時建立了實體車隊,在LINE正致力推動線下服務與線上平台的板塊整合之際, TaxiGo團隊的命題,與LINE的企業發展策略極為契合,在雙方團隊的努力下,LINE正式邀請TaxiGo加入LINE的生態系,也使TaxiGo成為LINE新星計畫中,從育成輔導到與LINE正式合作的首例! (相關新聞,歡迎參考: 攜手TaxiGo LINE TAXI叫車平台正式上線 連結車隊與用戶的開放平台 同步招募台灣在地車隊加入) 使用 LINE 作為客戶端軟體的契機 當初開發的時候,原本就有開發好兩個平台的應用:司機端的 App 應用, 與客戶端的應用。 因為希望能給客戶最新的功能,能夠快速的讓產品迭代。所以在 2017 上市的時候就跟上了 LINE chatbot 的熱潮,透過 LINE 官方帳號,使用者再也不需要另外下載 App 。也可以很快速很方便地在 LINE 上面就可以使用到叫車的服務。 而司機端依舊使用 iOS 與 Android 的 App...
繼續閱讀

[TIL]關於 VIM 的錯誤訊息: Exception not caught: [vim-hug-neovim-rpc] requires `:pythonx import neovim` command to work

問題 Exception not caught: [vim-hug-neovim-rpc] requires `:pythonx import [pynvim | neovim]` command to work 每次只要透過 brew upgrade 來更新 vim ,就很容易發生以下的問題。(應該是跟更新了 python 有關)。 不論跑 :pythonx import pynvim 或是 :pythonx import neovim 都是一樣的。 找了很久才找到解答: 解答: 參考 Error Every time I load in vim8 (not neovim) 可以看到以下解法: brew link --overwrite [email protected] --force pip3 install pynvim 也可以透過: echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc 來解決。 相關鏈結: Error Every time I load in vim8 (not neovim)
繼續閱讀

[研討會心得] 2020/05/26 Golang#49 @online

前言 大家好,我是 LINE Taiwan 的 Tech Evangelist - Evan Lin。這次很開心受到 Golang 社群的邀請,參加了 “Golang Taipei Gathering #49 Webinar” 的聚會活動,並且分享 Golang 開發的一些技巧與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓 Golang 更受到人了解。 社群 Chatbots Meetup: https://www.meetup.com/golang-taipei-meetup 本次活動網頁: 活動網址 由於防疫的要求,這次是在線上參與這次的聚會活動。很感謝每一位參與的朋友帶來的問題,希望透過線上以及錄影的方式可以讓更多的朋友可以了解。 LeetCode 挑戰 / 阿物股份有限公司 - 船長 影片: 投影片: https://eehsiao.github.io/LeetCode20200526-gtg49.pdf 船長分享如何透過寫 LeetCode 來 「舒壓」,並且可已透過寫 LeetCode 來對於許多演算法的學習更加深入。 Q&A: 記錄一些當天有人詢問有趣的問題: Q: 有推薦的哪些常用 function 或是工具可以加速解題嗎? A: 沒有常用的工具,但是有準備一些 tree 跟 graph 作為加速解決問題的方法。 Q: LeetCode 是否能幫助平日的開發工作? A: 可以,幫助相關思考。 Q: LeetCode 真的需要花時間刷嗎?如果已經有其他經驗了 A: 許多大型跨國公司依舊需要透過 LeetCode 刷題。 如何使用 Golang從 Youtube 抓下影片 / 資深開發技術推廣工程師 Evan Lin 影片: 投影片: 這次主要是分享如何透過 Golang 來抓取 YouTube 影片的經驗分享與相關方法介紹: 專案: github.com/kkdai/youtube Github: https://github.com/kkdai/youtube 直接下載使用: - go install github.com/kkdai/youtube/youtubedr 用法1: (另存檔名為 Campaign Diary.mp4) youtubedr -o "Campaign Diary".mp4 https://www.youtube.com/watch\?v\=XbNghLqsVwU 用法2: (不指定檔名,而使用影片標題) youtubedr https://www.youtube.com/watch\?v\=XbNghLqsVwU 更多資訊歡迎參考這篇文章: [TIL][Golang] 如何抓取 Youtube 影片的相關資訊,與使用 Go 下載 Youtube 影片 Q&A: 記錄一些當天有人詢問有趣的問題: Q: 未來會提供直接下載 youtube list 的功能嗎? A: Playlist 尚不支援,基本上 Playlist 可能需要用到 YouTube API。 Q: 會想要支援其他平台,像是 facebook 或是 instagram 嗎? A: Instagram 之前有寫過,不過後來都強制需要開發者帳戶。而且有所次數。 https://github.com/kkdai/goInstagramDownloader 。 臉書的部分也需要透過開發者帳戶,並且需要使用 FB Graph API 。 Q: 請問可以用用爬蟲的方式把資料爬出來嗎? A: 這個方式就是爬蟲的方式,只是因為原本就需要透過 js 來...
繼續閱讀

[研討會心得] 2020/05/27 Chatbots 19 @online 與 2020 May LINE 平台更新整理報告

前言 大家好,我是 LINE Taiwan 的 Tech Evangelist - Evan Lin。這次很開心受到 chatbot 社群的邀請,參加了 “Chatbot meetup 聊天機器人小小聚 19 @Online” 的聚會活動,並且分享 LINE API 更新與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓聊天機器人的開發動能更加的盛大。 社群 Chatbots Meetup: https://chatbots.kktix.cc/ 本次活動網頁: 活動網址 本次活動的共筆紀錄: https://hackmd.io/@chatbot-tw/meetups-019 由於 Chatbots Meetup 本身屬於社群自主性的活動,裡面也有許多社群朋友所贊助的閃電秀。裡面的所有內容也是相當的難得與有趣。也希望能夠透過本篇文章讓大家稍微了解 Chatbots Meetup 社群閃電秀的魅力。 由於防疫的要求,這次是在線上參與這次的聚會活動。很感謝每一位參與的朋友帶來的問題,希望透過線上以及錄影的方式可以讓更多的朋友可以了解。 LINE Platform Update 202005 / 資深開發技術推廣工程師 Evan Lin 投影片 04/30: liff.getLineVersion() and liff.id added to LIFF v2 雖然之前 LIFF 有提供了 liff.isApiAvailable() 的功能來檢查該 API 是否能夠支援。 但是許多時候,開發者是需要取得使用者的 LINE App 版本來對於問題的復現與除錯之用。 這時候可以透過 LIFF 的 liff.getLineVersion() 可以取得目前執行這個 LIFF 的 LINE App 版本號碼。 當然如果使用者是使用 External Browser 來開啟 LIFF 的話這個就會回傳 null 。 05/08: LIFF Versioning policy and life cycle have been released 接下來這個部分是討論 LIFF 的 Versioning policy 之後將採取 Semantic Versioning 也就是針對版本號碼的管理,將依照以下原則: MAJOR.MINOR.PATCH 。至於 MAJOR,MINOR 與 PATCH 分別代表什麼意義,歡迎查看相關資料。 此外,這一次的公告也提出了。將版本停止支援( End-of-life) 之後,相關的 SDK 也會從 CDN 移除,也就不會有任何 API 可以使用。 最後,也是最重要的就是開發者們關心的 LIFF 支援的週期: LIFF v1 將支援到 2021 的九月 。 希望所有開發者能夠記住這個時間,儘早準備 migrate LIFF App 到 LIFF v2 。 05/12: Messaging API update for May 2020 Message character limit and media file usage conditions have...
繼續閱讀

[LINE][教學] 如何使用新 API 來有效地發送與接收 LINE Emoji

前言 LINE Emoji 是指在 LINE App 中可以使用的 LINE 表情集,其中有分為通用的(免費)與付費的表情集。 使用 LINE Emoji 在訊息當中可以讓使用者閱讀的時候更有感覺。 但是身為開發者該如何正確地發送與接受處理這些 LINE Emoji 呢? 這一篇文章將透過 Golang 的範例程式碼,指引該如何正確地發送與接受 LINE 表情集 (LINE Emoji) 。 投影片: 範例程式碼 https://github.com/kkdai/linebot-emoji 實際跑一個範例 (demo) 加入這個官方帳號: 隨便傳送一個表情符號,會看到聊天機器人用三種方式回覆你。 分別是: 舊的 Emoji 傳遞方式來發送 新的 Emoji 傳遞方式來發送 加上使用者的 Emoji 並且透過新的 Emoji 來發送 新的 API 說明: Use LINE emoji in messages (2020/April) 現在開始要在文字訊息裡面發送 LINE emoji 不需要自行做 unicode 轉換。可以直接在 API 中加上相關的 LINE emoji 編號就可以達成了,開發上變得更方便,也更有彈性。 可以參考新的 API : Text message 或是參考新的公告:[Updated] Messaging API update for April 2020 Getting LINE emoji information from the text object of a webhook event (2020/May) 在四月提供了新的發送 API 之後,五月的 Webhook 也提供了新的 Webhook 資訊可以讓聊天機器人有效的處理 LINE Emoji 。 透過 emojis 可以取得所有訊息中出現的 LINE Emoji 詳細資訊如下: 可以參考新的 API : Text message webhook 或是參考新的公告:Messaging API update for May 2020。 使用 Golang 開發一個 LINE Emoji Echo Bot: 接下來的會使用 Golang ,根據 https://github.com/line/line-bot-sdk-go 提供的功能來開發 Echo Bot 。也就是一個會依照使用者講的文字來回覆的聊天機器人。 但是不同於一般 Echo Chatbot ,這個 Echo Bot 將會回傳使用者傳過來的 LINE Emoji ,所以需要具有以下幾個功能: 擷取 Webhook text Message 中的 emojis 資訊 。...
繼續閱讀

[研討會心得][DSC] 20200507 使用 Go 來打造 LINE 聊天機器人

前言 大家好,我是 LINE Taiwan 的 Technology Evangelist - Evan Lin。 感謝 DSC (Google Developer Student Clubs) 的邀請,在 2020/05/07 線上給予同學們基本的課程。 內容將有 Golang 的基本介紹,並且透過打造一個簡單的 LINE Bot 來跟各位展示 Golang 的一些優點。 這次有來自於四間大學(中興大學,台北大學,臺北科技大學以及銘傳大學)的 DSC 社團同學 ,全程也開放網路直播,希望可以讓更多對於 LINE Bot 有興趣的初學者一個良好的教材。 Build LINE Bot with Go / 資深開發技術推廣工程師 Evan Lin 投影片 這一次分享的投影片,主軸分成三個: 為什麼我會學習 Golang ? 什麼是 Golang? 經過了十年在多媒體外商軟體公司的工作之後,為了學習新的 Web 程式語言進而嘗試了不少的程式語言之後,最後選擇了 Golang 來鑽研。並且為了深入的學習 Golang ,而啟動了 Project 52 來作為學習 Golang 的方式,也因此學習了不少的演算法與進階的資料格式的應用方式。 這裡也介紹了一些 Golang 的基本優點: Gofmt / goimport: 幫助你可以讓你的程式碼風格一致並且避免遺漏某一些需要使用的套件。 Go test: 幫助你快速準備好測試的方式,撰寫測試程式碼再也不困難。並且可以相當快速的做好效能調校的工作。 GoDoc:做文件一直是讓開發人員很困擾的事情,不是因為開發人員不願意寫。往往是輸出到文件需要有一些相關的轉換,或是需要許多額外的資料在程式碼之中。 使用 GoDoc 只要開發者的程式碼已經寫好了,就可以直接在網路上找到(舉例: https://pkg.go.dev/github.com/line/line-bot-sdk-go/linebot 就是直接將 https://github.com/line/line-bot-sdk-go/linebot 轉換成文件的網站。 GoRoutine:做 multiple routine programming 在許多語言其實都有一些困難跟繁瑣。除了多線程模型本身就需要有相當多需要注意的東西之外,要建置這樣的所需的程式碼其實也很複雜。使用 goroutine 相當的輕量,並且相當的容易。開發者可以把心力全部放在如何處理多線程的相關控制上。 如何學習 Golang : 由於這次主要的聽眾都還是大學的學生(部分還是大一的學生),所以許多的操作範例都是直接在 Golang Playground 來進行操作。可以省去許多程式初學者經常遇到的環境設置的問題。 Golang Playground 同時也建議初學者可以把出現問題的程式碼透過 Golang Playground 來,分享出來在各種社群媒體來詢問。這樣一來也容易察覺問題與解決問題。 同時也建議同學們可以透過 Golang Tour 來一步一步的學習相關的知識,每一頁都有程式碼可以使用,可以線上編輯與執行。也可以透過邊練習,邊了解的方式更快速能夠加深印象。 什麼是 LINE Bot ? 如何透過 Golang 快速打造出一個 LINE Bot ? 學習一個語言最好的方式就是馬上透過它來打造一個東西,不論是一個產品,一個服務甚至是一個小工具。 在這裡相當建議各位透過打造 LINE Bot 來作為學習 Golang 的方式。主要的理由如下: 打造 LINE Bot 不需要高深的美術觀念,對於一些 UI 美感有困難的人。學習 LINE Bot 不僅僅可以更快入手,並且可以讓開發者更專注在程式本身的功能上。 使用正確的平台與訊息發送方式, LINE Bot 的開發是不需要任何費用。 在影片中的範例,展示透過 Heroku 作為伺服器的平台。打造出來的 LINE Bot 因為僅僅是回覆使用者的問題,也不需要任何額外的費用產生。 LINE 是一個相當好的工具(或是服務)的發佈平台,如果開發者們開發出相當有用的工具,透過 LINE 可以快速的推薦給親朋好友。而且不需要類似上架 App 的繁瑣的審核過程,發布的流程也是相當的快速。 接下來開始講解如何快速打造一個 LINE Bot: 範例程式碼:...
繼續閱讀