[研討會心得] 2020/01/15 Chatbots 16 at Dcard

前言 大家好,我是 LINE Taiwan 的 Technical Evangelist - Evan Lin。這次很開心受到 chatbot 社群的邀請,參加了 “Chatbot meetup 聊天機器人小小聚 16 @ Dcard” 的聚會活動,並且分享 LINE API 更新與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓聊天機器人的開發動能更加的盛大。 社群 Chatbots Meetup: https://chatbots.kktix.cc/ 本次活動網頁: 活動網址 本次活動的共筆紀錄: https://hackmd.io/@chatbot-tw/meetups-016 由於 Chatbots Meetup 本身屬於社群自主性的活動,裡面也有許多社群朋友所贊助的閃電秀。裡面的所有內容也是相當的難得與有趣。也希望能夠透過本篇文章讓大家稍微了解 Chatbots Meetup 社群閃電秀的魅力。 這次場地感謝 Dcard 贊助在 Dcard 的 14 樓辦公室,有一個專門提供給技術社群分享的空間。相當的不錯,也希望有更多的社群來這裡分享。 LINE Platform Update 202001 / 資深開發技術推廣工程師 Evan Lin 投影片 本次的分享主要是跟大家分享一下近期平台的相關更新,希望能讓大家第一時間的收到最新的相關消息。 iOS 9.19.0 之後 scanCode 與 BLE 相關功能暫時關閉 在去年十一月的時候就有做過相關的宣傳,但是 iOS LINE 9.19.0 一直到了 2020/01/06 才正式上線。所以在這裡也要跟開發者們再三勸說,因為 iOS LINE 新的版本 App 由於技術問題將 scanCode() 與 BLE 相關功能都暫時移除掉,所以也建議開發者們在撰寫相關的技術的時候需要做相關的 error handing ,才能確保不論是在 iOS 還是在 Android 都能有完美的使用者體驗。 相關鏈結: 如使用已中止的 LIFF SDK API,請調整程式碼 部分 LIFF 功能暫停使用 透過 Messaging API 的 LINE 官方帳號,將於用戶資料下方顯示開發者註冊的 provider 名稱 為了讓使用者更清楚辨別官方帳號的正確性,Provider 名稱預計在 2020/01/16 要顯示在 Messaging API 的官方帳號上。 請確認您所開發的聊天機器人的 Provider 名稱。 相關鏈結: [Updated] 請確認 provider 名稱正確 LINE Developer Relations 2019 Update / 資深開發技術推廣工程師 Evan Lin 第二部分帶來了 LINE Developer Relations 2019 相關貢獻的整理, 2019 年在 LINE 是一個開發者社群的一年。並且在 2019 年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,預計全年將舉辦30場以上的活動。更有更多部分可以參考這篇文章。 相關鏈結: 投影片: LINE Developer Relations 2019 Update LINE Taiwan Developer Relations 2019 回顧與 2019...
繼續閱讀

[TIL][Golang] 使用 jQuery 來解析需要 cookies 的網頁內容

前言: 就在農曆的除夕夜因為家裡的電視壞了好幾天,所以開始看自己的 Github 專案。想說來弄弄 Go modules ,結果發現這個專案已經不能用了。 iloveptt 是我有一個專門在爬 PTT 版面的小專案 ,最近拿起來用的時候忽然發現不能用了。 經過追查之下發現原本透過 GoJQuery 的功能套件忽然無法找尋到正確到資訊。 這一篇文章就是記錄著該如何尋找,還有該如何解決問題。 相關專案: 我愛批踢踢 A PTT Crawler and Photo downloader which written in Golang: https://github.com/kkdai/iloveptt Golang: A photo download package for gomobile in Golang: https://github.com/kkdai/photomgr 問題發生了 原本要解析目錄的 jQuery 卻忽然無法成功,但是很確定找尋資料是正確的,也另外透過瀏覽器來查詢過網頁原始碼,沒有發現有相關的變更。 這個時候首先需要把資料全部印出來,透過的方式可以先將所有資料的˙html 列出來,看看 jQuery 所得到的資料有什麼不同。 可以透過 doc.Find("*").Each(func(i int, s *goquery.Selection) { 的方式,並且使用 s.Html()來列印出目前搜尋到的真正結果問題在哪裡。 原來是網頁有使用者同意條款 這時候會發現這邊出現的 HTML 原始碼部分跟你在瀏覽器看到的不同,原來是 PTT 有顯示使用者同意條款,必須要使用者同意相關內容為 18歲以上的內容。 而能夠正常讀取網頁的內容是因為你的瀏覽狀況有 cookies 。 而檢查 cookie 的方式可以透過 Chome Developer Console 透過 Networking 來尋找 Request Cookies 來查看是否有 Cookies 。 參考相關文章: https://bryannotes.blogspot.com/2015/07/python-crawler.html 把 JQuery 加上 Cookie 來查詢 那要回過頭來思考透過 github.com/PuerkitoBio/goquery 套件能不能夠加入 cookies ? 首先來查看一下文件好了。 https://godoc.org/github.com/PuerkitoBio/goquery#NewDocument 你會發現他有以下的方式。 func NewDocument func NewDocumentFromNode func NewDocumentFromResponse 其中 NewDocumentFromResponse 可以使用,我們就要開始思考如何透過 net/http 來取得具有 cookies 內容的資訊呢? https://siongui.github.io/2018/03/03/go-http-request-with-cookie/ 這邊文章給了一個不錯的範例。 最後修改方式 參考以上的修改方式,我們需要將程式碼修改如下,才能夠正常的運行。 最後附上相關 issue number: https://github.com/kkdai/photomgr/issues/6 結論: jQuery 很方便的可以直接透過 selector 來操作一些網頁上的資料,但是有時候透過 app browser 去抓取的資訊可能跟自己開瀏覽器的不同。 在除錯的流程上可能需要更加的小心才不會讓自己陷入找不到真正問題的所在而盲目猜測。 本篇文章希望能讓想透過 jQuery 寫 Golang 爬蟲的人一些點子,也可以幫助大家了解相關知識。 Reference: Related issue https://github.com/kkdai/photomgr/issues/6 https://bryannotes.blogspot.com/2015/07/python-crawler.html https://dometi.com.tw/blog/jquery-teach/ https://siongui.github.io/2018/03/03/go-http-request-with-cookie/
繼續閱讀

[LINE DevRel] LINE Taiwan Developer Relations 2019 回顧與 2019 開發社群計畫報告 (part 3: Technical Branding and Hiring)

前言 大家好,我是 LINE Taiwan Developer Relations 團隊的 - Evan Lin。 經過了一年多來的 LINE Developer Relations 的努力,想要在這篇文章裡面稍微整理一下整個團隊做了哪一些的事情,也希望為了「LINE 開發社群計劃」做年度報告。 根據原先 LINE Developer Relations 所寫的介紹文章 (Introducing Developer Relations team) 裡面很清楚地定義了這個團隊的主要目標如下: External Evangelism: 鼓勵開發者使用 LINE 的平台,API與SDK 來開發出具有魅力與有趣的應用服務。 (Encouraging people to make attractive and interesting services using the APIs and the SDK by LINE) Internal Evangelism: 透過一些方式使得工程師們自我成長與磨練自己 (Doing whatever our engineers feel difficult to do themselves in making improvements at work) Technical Branding and Hiring: 讓更多人了解身為 LINER(LINE 員工的自稱) 有許多有趣與令人興奮的事情。 (Letting people know how fun and exciting it is for engineers to work at LINE) 上一篇文章,已經明確的定義了 External Evangelism,接下來將更進一步的解釋 Technical Branding and Hiring。 文章列表: [LINE DevRel] LINE Taiwan Developer Relations 2019 回顧與 2019 開發社群計畫報告 (part 1: External Evangelism) [LINE DevRel] LINE Taiwan Developer Relations 2019 回顧與 2019 開發社群計畫報告 (part 2: Internal Evangelism) [LINE DevRel] LINE Taiwan Developer Relations 2019 回顧與 2019 開發社群計畫報告 (part 3: **Technical Branding and Hiring) (本篇文章) Technical Branding and Hiring: 讓更多人了解身為 LINER(LINE 員工的自稱) 有許多有趣與令人興奮的事情。 LINE...
繼續閱讀

[LINE DevRel] LINE Taiwan Developer Relations 2019 回顧與 2019 開發社群計畫報告 (part 2: Internal Evangelism)

前言 大家好,我是 LINE Taiwan Developer Relations 團隊的 - Evan Lin。 經過了一年多來的 LINE Developer Relations 的努力,想要在這篇文章裡面稍微整理一下整個團隊做了哪一些的事情,也希望為了「LINE 開發社群計劃」做年度報告。 根據原先 LINE Developer Relations 所寫的介紹文章 (Introducing Developer Relations team) 裡面很清楚地定義了這個團隊的主要目標如下: External Evangelism: 鼓勵開發者使用 LINE 的平台,API與SDK 來開發出具有魅力與有趣的應用服務。 (Encouraging people to make attractive and interesting services using the APIs and the SDK by LINE) Internal Evangelism: 透過一些方式使得工程師們自我成長與磨練自己 (Doing whatever our engineers feel difficult to do themselves in making improvements at work) Technical Branding and Hiring: 讓更多人了解身為 LINER(LINE 員工的自稱) 有許多有趣與令人興奮的事情。 (Letting people know how fun and exciting it is for engineers to work at LINE) 上一篇文章,已經明確的定義了 External Evangelism,接下來將更進一步的解釋 Internal Evangelism 與 Technical Branding and Hiring。 文章列表: [LINE DevRel] LINE Taiwan Developer Relations 2019 回顧與 2019 開發社群計畫報告 (part 1: External Evangelism) [LINE DevRel] LINE Taiwan Developer Relations 2019 回顧與 2019 開發社群計畫報告 (part 2: Internal Evangelism) (本篇文章) [LINE DevRel] LINE Taiwan Developer Relations 2019 回顧與 2019 開發社群計畫報告 (part 3: **Technical Branding and Hiring) Internal Evangelism: 透過一些方式使得工程師們自我成長與磨練自己 首先這個部分大部分都是內部的分享與一些讓 LINER(在 LINE...
繼續閱讀

[好書分享] 五星級溝通術,你的成功巨浪

五星級溝通術,你的成功巨浪 Five Stars : The Communication Secrets to Get From Good to Great 作者: 卡曼.蓋洛 原文作者: Carmine Gallo 譯者: 葉妍伶 出版社:先覺出版 出版日期:2018/10/01 買書推薦網址:http://moo.im/a/lmwCEX 前言: (2020 第二本書) 這一本其實是跟著「跟TED 學表達,讓世界記住你 」一起購買的,因為作者就是同一位。而這一本是比較新的,不過因為先把其他兩本先看完而這一本也花得比較久的時間來慢慢品味。 最近有把這一本拿回來繼續看,發現有不少的東西其實可以繼續的學習與加強在前一本裡面的許多概念。整本書閱讀起來更加的有深度與實用。 內容簡介: ★《跟TED 學表達,讓世界記住你》暢銷作者卡曼‧蓋洛驚艷新作!★ 當科技威脅著要取代無數工作與技能, 「說服力」將是你站穩這一波浪潮的關鍵優勢。 AI讓你「知道」,偉大溝通者卻能讓你「感動」,說服你起身而行。 光有好點子已經不夠,五星級的溝通技巧, 才是決定你能否獲得升遷、激發團隊、不被取代的量尺。 發揮口才並不是在操控人心,不學習溝通說服術才可恥! 簡介來自讀墨:http://moo.im/a/lmwCEX 「構想」指的是透過有條理,組織化的方式來將你想要表達,想要傳遞的資訊加以整理過。利用故事化,敘事化的方式來有效地傳遞給需要的。 第一部 為什麼優秀的溝通者無可取代? 內容章節的鋪成上,首先先讓人了解優秀的溝通者的重要性。頂尖的科學家,經濟學家,歷史學家與企業領導者都在這個相信「構想」是相當重要的。早在兩千三百年前亞里斯多德主張人類是語言的動物,而「修辭」──也就是說服的能力──既是一門科學也是一門藝術。 第二部 向高手們看齊 透過一些高手們來學習如何有效地組織你的想法: 科學家 - 尼爾 德葛拉斯 泰森,每個月收到兩百場演講邀請,卻只講四場。透過比較酷的內容來宣傳科學的有趣之處。「如果足球是太陽在五十碼線上面,地球在十五碼線上,那麼冥王星就在四分之一英里以外,別再想啦」。透過有趣的比喻來讓科學常識更容易被人了解。 接下來在其他的案例中也舉出了創業家,專業人士的許多案例來表示:「説服力」不僅僅能夠幫助你表達意見給對方,更是讓你在公司內,在企業上的重要兵器。 第三部 從A晉升A+的五星級溝通術 這邊的內容也是從「跟TED 學表達,讓世界記住你 」的內容開始延伸,講述著講故事能力的重要,並且透過「感情訴求」,「故事結構」來提升你說故事的能力。 心得: 這一本書透過循序漸進的方式來講解「溝通的重要」,「怎麼樣是一個好的溝通?」,並且也建構出一個「好的溝通的公式」,最後應該「透過故事來取得彼此的同理心」,最後也不斷地強調一個好的故事該如何的建構與該如何鋪成出一個好的故事。 一個好的故事的重點在於重點清楚,詞彙簡單,透過比喻的方式來被人們所接受與吸收。這樣的話語就像是金恩博士不斷修整的演講稿,「I have a dream … 」, 也像是林肯總統在上台前不斷地將演講稿修改,希望的就是能透過簡單的詞彙,來讓聽眾更容易記住,更容易理解,更容易吸收。 這是一本很建議多讀兩三次的書籍,並且也建議每隔一段時間就要回過頭來再讀一次。裡面講的方法與建議真的不少~只要能吸收一兩個項目就會是一個很棒的演講者。但是要真正融會貫通,就需要時間來淬煉。
繼續閱讀

[好書分享] 崩壞國文:長安水邊多魯蛇?唐代文學與它們的作者

崩壞國文:長安水邊多魯蛇?唐代文學與它們的作者 作者: 謝金魚 插畫: 燕王WF 出版社:圓神出版 出版日期:2017/11/01 ISBN: 9789861336367 買書推薦網址:http://moo.im/a/1szKQS 前言: (2020 第一本書) 小時候因為很愛打電動,被家人強迫必須要讀完唐詩三百首的一首才能打電動。一開始的五言絕句還算簡單,到後期的樂府的實在朗誦到很辛苦。 看到這本書裡面有許多耳熟能詳的唐代詩人故事,就好奇真正的唐代詩人究竟是如何能夠想出那麼優美的詩句? 這本書生動的筆觸與有趣的文字將會讓你一讀就忍不住想把它都念完。 最近實在蠻愛念這一系列有趣的休閒書籍,除了本身對於詩詞與歷史故事的喜愛之外。這些作者都能透過生動而有趣的敘事方式來讓讀者更有興趣的了解這些國文與歷史故事。真的是看到一本就買一本。 XDDD 內容簡介: 我們從小在國文課本上看到的一代文壇宗師、傑出的詩人、宰相、書法家,他們若不是道貌岸然,就是憂國懷鄉,似乎生來就負有崇高的使命,連他們的挫折失意,都是為了更長遠的理想所做出的犧牲或伏筆。 但,真的是如此嗎? 事實上─── 有一種留名青史,叫古人的廢文玻璃心 唐代的名人宗師跟你想的差很大! 他們除了有才,生活上或酸、或魯、或廢、或憨, 比我們也好不到哪裡去! 簡介來自讀墨:http://moo.im/a/1szKQS 這本書透過相當有趣的書名「長安水邊多魯蛇?」來讓你顛覆對於這些詩詞大師的刻板印象。在這邊開始列出相關的一些詩人: 韓愈的生猛海鮮宴 柳宗元的檳榔 白居易的廢文人生 元稹的酒 先列出前面四個章節就能了解到作者的筆觸下似乎把心目中的唐代大詩人,全部都變成了魯蛇。 柳宗元由於被放逐到南部地方,於是就愛上當地的貴族食物(檳榔),細節在書裡面都有詳細敘述,這一些的敘述除了相當的有趣之外,還相當的有學習價值。 心得: 能夠再次的品味每一個詩詞後面原來是有那麼多的歷史背景,讓這些詩詞也馬上得活在我的腦海裡。真的相當有趣的章節編排。 並且最後一些章節還有談到安祿山與史思明的故事,更是讓我心中有一段老是被不起來的唐代歷史又活化在我面前。並且知道了安祿山的種族歷史故事之後,也就能充分了解「安史之亂」的緣由。 相當推薦大家來看看這一本書,相信腦海中的生硬的詩詞與歷史故事都會變成有血有肉的真實人物。
繼續閱讀