[Golang][LINE][教學] 導入 LINE Login 到你的商業網站之中,並且加入官方帳號為好友

(圖片來自: Linking a bot with your LINE Login channel ) 前言 剛起步的商業網站或是服務,想要吸引使用者來註冊,但是由於需要輸入一堆資訊讓使用者望之卻步。這個時候透過 OpenID 的登入方式常常可以吸引許多使用者快速加入服務。不論是透過透過 Google 或是 Facebook 的帳號都是很方便的。做為台灣手機軟體佔有率名列前茅的 LINE ,當然也有相關的服務稱為 LINE Login 。 繼上一篇 [Golang][LINE][教學] 將你的 chatbot 透過 account link 連接你的服務 教學之後,本篇文章將介紹 LINE Login 並且提供一個範例 (Golang) 講解如何導入 LINE Login 在已經有的商業網站服務之中。 常常也很多開發者在詢問,如何透過 LINE Login 在使用這加入服務的時候直接幫使用者加入官方帳號。這篇文章也會在最後的範例裡面提到該如何做。 為何要使用 LINE Login 許多的商業服務都會透過會員機制來提供許多專屬的優惠或是獎勵活動,但是會員的註冊與登入流程常常讓許多使用者覺得為難。除了要填寫許多的資料外,使用者還需要額外記住另外一組的帳號密碼。 LINE 在台灣的佔有率相當的高,並且幾乎每個使用者都有 LINE 的帳戶的狀況下,這時候如果能夠直接使用 LINE 帳戶來註冊與登入網站服務的話是不是相當的方便? LINE Login 除了提供一個方式來登入之外,也可以提供使用者名稱,大頭照的相關資訊。並且透過 LINE Login 也可以同時讓使用者加入商業服務的 LINE官方帳號,讓使用者更無時無可都可以使用到相關的服務。 什麼樣的情況會建議使用 LINE Login 這裡會條列出哪些情況建議需使用 LINE Login 作為讀者來評量自己有沒有需要使用 LINE Login : 剛開始要建立電子商務服務或是網站,想要減少使用者註冊的時間並且快速加入。 想要推廣自身官方帳號的聊天機器人服務。 就算是已經推廣一段時間的電子商務服務,但是想要透過 LINE 來接觸不同的客戶群。 了解為什麼使用 LINE Login 以及甚麼狀況下建議使用之後,接下來就引導讀者如何使用範例程式碼 範例程式碼 https://github.com/kkdai/line-login-go 如何部署範例程式碼: 到 LINE Developer Console 建立相關的 Provider 跟 Channel。 建立一個 LINE Login 的帳號,並且將以下兩個資訊記住: Channel ID Channel Secret 另外建立一個 LINE@ 並且打開 MessageAPI 的功能(也就是建置 chatbot 用),並且將以下兩個資訊記住: Channel Secret Channel Token 到 https://github.com/kkdai/line-login-go 按下 Heroku Deploy ,建立該帳號並且部署該服務。這時候會要輸入三個資訊: LINECORP_PLATFORM_CHANNEL_CHANNELID 填入 LINE login channel ID LINECORP_PLATFORM_CHANNEL_CHANNELSECRET 填入 LINE login channel Secret LINECORP_PLATFORM_CHATBOT_CHANNELSECRET 填入 Chatbot channel Secret LINECORP_PLATFORM_CHATBOT_CHANNELTOKEN 填入 Chatbot channel Token LINECORP_PLATFORM_SERVERURL 這個資訊根據你的 heroku app 名稱來決定,假設你的 Heroku app 名稱叫做 test-api-1234 那麼你就該填 https://test-api-1234.herokuapp.com 回到...
繼續閱讀

[Golang][LINE][教學] 將你的 chatbot 透過 account link 連接你的服務

(圖片來自: LINE Developer Document: Link user account ) 前言 經營有成的電子商務網站,如果想要透過 LINE 官方帳號( OA: Official Account) 與聊天機器人來觸及更多使用者應該要怎麼做呢? 你要如何透過安全又有效的方式來串連網站與 OA 的互動呢? 這篇文章將介紹 LINE account binding,透過 account binding 可以讓你的 chatbot 了解面對的使用者身份。並且透過綁定帳號的方式來提供使用者一制化的體驗。並且透過一個範例來讓你更容易快速建置出來。 範例程式碼 https://github.com/kkdai/line-account-link 如何部署範例程式碼: 到 LINE Developer Console 建立相關的 Provider 跟 Channel 建立一個 LINE@ 並且打開 MessageAPI 的功能,並且將以下兩個資訊記住: Channel Secret Channel Token 到 https://github.com/kkdai/line-account-link 按下 Heroku Deploy ,建立該帳號並且部署該服務。這時候會要輸入三個資訊: LINECORP_PLATFORM_CHANNEL_CHANNELSECRET LINECORP_PLATFORM_CHANNEL_CHANNELTOKEN LINECORP_PLATFORM_CHANNEL_SERVERURL 這個資訊根據你的 heroku app 名稱來決定,假設你的 Heroku app 名稱叫做 test-api-1234 那麼你就該填 https://test-api-1234.herokuapp.com/ 記得把 https://test-api-1234.herokuapp.com/callback 加到 LINE chatbot web hook 才能正確地啟動聊天機器人。 範例應用場景 這個範例想要表的是一家電子商務公司有 三個使用者 (ID: 11, 22, 33) 也都有相關的身份資料在該電子商務網站。而這個聊天機器人可以展示如何透過 LINE account binding 來串連你的使用者與聊天機器人。 整個場景都流程分成以下幾個步驟: 使用者加入電子商務的官方帳號 。 在官方帳號選單的聊天機器人視窗中,選擇“帳號綁定” (link)。 連線到該電子商務網站,輸入原本已經有的帳號跟密碼。 確認帳號訊息無誤後,倒回聊天機器人並且進行帳號綁定。 實際跑一個範例 先 Deploy 該範例專案,或是直接加入測試機器人 @yzy8635g (也可以掃描以下 QR Code) 加入帳號後 ,輸入任何字串都是會顯示帳號尚未綁定。你可以連到該商業網站顯示帳號 (list) 或是直接開始綁定帳號 (account link) 按下 “list” 會傳回顯示所有使用者的網址.按下 “link” 則顯示登入頁面開始登入。 到了登入網頁,就輸入該商業網站的帳號跟密碼。 這個範例程式裡面是 11, pw11 (假定使用者叫做 Paul) 登入成功之後,就會收到 chatbot 回報帳號綁定成功。把綁定帳號網頁關閉即可。(要做得更好,可以透過 LIFF 來做 account binding 就可以自動關閉網頁) 回到聊天機器人,這時候帳號就顯示綁定完成。表示 chatbot 能夠將你與商業網站的使用者連接一起。 chatbot 也就已經將使用者 Paul 的帳號綁定。 流程圖與程式碼解釋 根據以上的流程圖,稍微說明一下每個角色代表的意義: User: 就是指的是 LINE 上面的用戶。 Provider’s bot server: 這邊指的就是該商業服務的 LINE 官方帳號的聊天機器人伺服器。 Provider’s web server: 這個就是該商業服務的網站伺服器,如果是購物網站就是該購物網站的後台伺服器。...
繼續閱讀

[Golang][LINE][教學] 如何傳送 LINE 專屬的表情符號(emoji)

前言 大家都知道 LINE 有一些自己獨特的表情符號(而非一般的 emoji) ,如果真的想要在 chatbot 中來顯示表情符號其實沒有那麼簡單。剛好發現其實網路上的資源也不多,順便寫一下相關資料分享給大家。 顯示一般的表情符號 (Emoji) ⚽️ 🏀 🏈 ⚾️ 🏐 🏉 🎾 如果要顯示 emoji ,其實他的代碼可以直接複製。這裡有兩種方式可以顯示。 直接將 emoji 複製起來,貼到字串裡面即可 str := 🍆 即可 如果要顯示完整 emoji 列表可以去這裡找 如果要透過 Golang 來顯示,可以透過以下的程式碼: 關於 LINE 自訂的表情符號 首先要先解釋一下, 一般來說如果要在官方帳號(OA) 上面直接發送具有 LINE 特定的表情符號可以透過以下方式。 \uDBC0\uDC84 這一段代表的就是顯示熊大的表情符號。但是你會發現不論你如何顯示都無法正常顯示。 經過尋找過後,發現以下的 issue 已提醒相關的資料。Python LINE SDK discussion 裡面有提到兩件重要的事情: LINE Emoji 是自定義的,要參考 LINE Emoji document 透過另外一個討論 Java LINE SDK discussion ,會發現 LINE Emoji 需要透過 utf32 來轉換到 utf8 。 (因為 Golang 本身都是透過 utf8 來處理字串) 所以處理方式如下: 透過 LINE Emoji document 來查表,找尋需要的 熊大 Brown 表情 0x100084 由於是 32 位元,前面補零 0x00100084 產生 utf32 decoder 轉換 utf32 成 utf8 那就直接來看程式碼: 參考 LINE Emoji document Python LINE SDK discussion Java LINE SDK discussion Golang UTF32 API
繼續閱讀

[好書分享] 跟TED學說故事,感動全世界

跟TED學說故事,感動全世界 - 好故事是你最強大的人生資產 The Storyteller’s Secret 作者:卡曼.蓋洛 原文作者:Carmine Gallo 譯者:許恬寧 出版社:先覺出版 出版日期:2016/07/01 書籍網址: http://moo.im/a/458fuE 前言: 跟著前一篇文章[好書分享] 跟TED學表達,讓世界記住你之後,這一本書相當推薦在讀完前篇文章之後繼續閱讀。也就是說如果說前一本書能讓你打破觀念,開始了解一個好的演講需要的一些要素。那麼這本書就是要讓你好好開始學習講一個好故事,講一個真誠的故事,講一個令人深刻的故事。 內容簡介: 這本書的主軸由二十四篇充滿著故事性的演講(可能不全是 TED) 開始提起,讓你了解每一篇所具有的說故事技巧。 第一部 那些點燃我們內心火焰的說故事大師 裡面先提到故事最重要的一些元素,不是誇張不是精彩,而是夠真實。這邊也不斷的建議我們,許多感動人心能夠連接講者與聽眾的故事往往就是講者自己的故事。這一段引用不少知名人士的演講,從搖滾樂天王史汀,星巴克的創始人到傳教的牧師。大家能了解這些人一站出來就能夠吸引每個聽眾的目光,但是讓感動內心的往往就是他們真實的過往故事,他們如何遇到困境,加以突破最後變成現在令人稱羨英雄的故事。 第二部 那些啟迪我們的說故事大師 第二段就是要提到故事往往要能「夠簡單」,透過故事本身的用字遣詞。這邊提到一個很重要的概念就是,就算你的故事內容與脈絡很好,你還需要不段的修飾故事本身的文字。讓故事說出來的時候,平易近人任何人都能輕鬆地閱讀並且了解。 這邊舉了比爾蓋茲在演講台上直接喝大便過濾的水,來讓大家注意並且打破了所謂「聽眾的安全堡壘」讓故事本身深刻的烙印在聽眾的心理。而哈洛威爾醫生透過比喻的方式來解釋「注意力不足過動症」(ADHD),讓每個聽眾就算沒有任何醫學的背景也能夠快速地了解。 第三部 那些一針見血的說故事大師 第三段開始要教導講者,你要能夠濃縮你的故事。如果你的演講無法改成一句話,一段文字或是三十秒的小故事。你的演講主軸真的需要好好的重新思考。 這邊有提到幾個有趣的例子:特斯拉的馬斯克用了很短的一句話敘述了現在世界上電池的缺點。太空人如何用短短的一個小故事與幾張圖片來讓你了解恐懼。如何透過明信片短短的區域來解釋你的生意點子獲得投資。 第四部 那些激勵人心的說故事大師 激勵人心的說故事大師往往都能夠讓他的故事具有靈魂,讓故事的本身變成演講的主軸。 跨國旅館的老闆透過自己的故事來激勵每一個員工,並且希望員工都能夠尋找自己的故事。因為故事的本身就代表著良好的服務,貼近人並且感動人心。讓每個來訪的顧客都能夠賓至如歸。 失去雙腳的講者敘述著自己原本快樂的生活,經歷了失去雙腳的巨變,如何調整自己並且擁抱全世界。 這些都是故事應該具有的靈魂。 第五部 那些啟動改造時刻的說故事大師 這裡首先都就提到了金恩博士,他如何透過「我有一個夢…」的起頭,來串接所有想法並且形成了跨世代的偉大演講。原本在講稿裡面並沒有那句話的,而這些被認為像是即席加入的幾個文字卻構成了最重要的元素。 這些可能都是不斷練習的結果,大家都聽過一萬個小時。除了不斷練習能帶來的熟練度之外,還能夠帶來敏銳的直覺能了解如何讓故事本身變得不朽經典的小技巧。 說故事大師的拿手絕活: ■告訴別人故事之前,先重新打造你告訴自己的故事。 ■給聽眾能認同的英雄,告訴大家他們克服了什麼困難,以及最後的收穫。 ■簡報至少要有65%是故事。 ■數據與事實雖能說服聽眾,但唯有動人的故事能讓大家起立鼓掌。 ■提供有用的細節,讓故事更豐富。 ■堅守三數法則。 ■皮克斯七步驟,給聽眾可以歡呼加油的對象。 ◎特別收錄1:24個故事QRcode即掃即聽! ◎特別收錄2:故事大師的百寶箱、故事力檢測表,三秒鐘立即吸收全菁華! 心得: 這本書除了讓你聽過一次那些偉大的故事本身外,透過頗析故事架構與共同的元素可以讓人快速地了解並且不斷的精進自己的故事。這本書的許多小技巧都相當能夠幫助你思考故事在演講中的比重,重新給予原本可能只是小插曲的故事新的靈魂。 透過這本書的閱讀之後,我重新了解故事對於一段演講的重要。必須得說也由於這樣的原因使得原本看似簡單的故事現在都要好好的思考整個故事架構與內容,務必力求完美。講師在講解的時候其實也大多依照著這本書的架構來教導。 記得第一次剛看完的時候,就決定將自己的演講分成兩段故事來表達。但是卻無法完整抓到故事給予人的連貫感與深刻程度,使得整個演講排練相當的糟糕。也只能說雖然說故事的能力是天生的,但是如何將故事說得好說得深刻說的動人,真的是需要持之以恆的練習。
繼續閱讀

[好書分享] 跟TED學表達,讓世界記住你

跟TED學表達,讓世界記住你 - 用更有說服力的方式行銷你和你的構想 Talk Like TED : The 9 Public Speaking Secrets of the World’s Top Minds 作者:卡曼.蓋洛 原文作者:Carmine Gallo 譯者:羅雅萱、劉怡女 出版社:先覺出版 出版日期:2014/05/29 書籍網址: http://moo.im/a/23bdVW 前言: 最近即將在年底的大活動來講比較軟性的題目。公司提供很好的福利給來分享的講者適當的訓練 ,為了能夠更了解,特地去買了電子書閱讀器 (readmoo),也買了一堆電子書來好好閱讀。 記得曾經聽誰說過『越硬的內容,講起來越軟(代表簡單);而越軟的內容,講起來越硬(代表很難)』,所以開始不斷的閱讀一些如何說出一個好演講的書籍。有兩本其實相當推薦。這是其中一本,另外一本是「跟TED學說故事,感動全世界」。 此外,為何說「越硬的內容越好講?」因為越艱深的內容,最重要的課題是要講的「淺顯易懂」這樣就已經成功了八成,只要在中間再加上一點點笑話,就是一場完美的演講。 但是軟性的演講是需要聽眾 call for action 的,更是因為每一張投影片可能都相當的容易了解。所以要能講到內心深處就格外的困難。要能夠讓聽眾感同身受,並且像是受到佈道般的激動感受。 內容簡介: 這是一本精心挑選了很多傑出的 TED 演講的書籍,並且詳細的解讀了每一個成功的演講背後的原因。 以下幾個是擷取出來的推薦,也是我最喜歡的幾個章節之一。 ▍羅賓森爵士如何幽默的談教育,使他的談話成為迄今最受歡迎的TED演說,勝過許多名人? POINT!關鍵的第一步聽起來可能違反我們的直覺──別企圖表現得很幽默!帶有幽默感的敏銳觀察,才是最恰當,也最有效的。 ▍比爾‧蓋茲為什麼要把蚊子帶上TED講台,是什麼原因讓他的演講5年後依然被討論? POINT!在演說中加入令聽眾瞠目結舌的橋段,那麼這段教他們難以忘懷的演說就能緊緊抓住他們的注意力,並且在演說結束後仍久久不忘。 ▍發現鐵達尼號的深海探險家巴拉德,如何在18分鐘內讓人們重新認識海洋? POINT!告訴聽眾一些他們從來沒聽過的資訊,並且以別出心裁的方式來包裝這些資訊;或針對行之有年的老問題提出新鮮、新奇的解決之道。 心得: 這是一本相當好的書籍,雖然整本書都是以介紹 TED 的成功演講為案例。但是非常清楚地解釋了每一段演講成功的原因,並且有附上相關演講的 QR code 。 雖然之前有一段時間我中午都是邊吃飯邊看 TED ,但是裡面還是有相當多段影片是我沒有看過的。 首先推薦的就是羅賓森爵士這段 TED 史上點擊率最高的演講,真的是相當的幽默風趣。讓每個聽的人都會會心一笑之外,也會認真的思考教育本質的問題。就如同他一直說的,「如果你的演講不有趣,就不會有人聽你說話。」再來我也很推薦比爾蓋茲的思路,首先透過不斷的清楚堆砌故事來深入人心之後。最後透過放蚊子的方式來打破每個人的防禦心,讓故事深刻的打到每個人的心理。 相當推薦這本書可以給以下兩種人: 如果你很喜歡看 TED 的演講影片,但是不知道哪幾篇是最受歡迎的。可以來看看這本分析,會讓你欣賞精彩的演講之外,深刻的了解許多背後的用意。 如果你跟我一樣,有一個機會要講比較軟性的演講。也很推薦你先從這一本看起,因為他會先開始讓你有學習的動機。先從欣賞一場好演講開始。
繼續閱讀

[Golang][LINE][教學] 如何快速建置一個 LINE Notify 的服務

前言 LINE 在 2017 年其實推出了一個「通知」的服務,名稱為 「LINE Notify」.這個服務跟 LINE Bot 裡面的推送(Push Message) 其實是分開來的,而且服務也是需要另外申請的. 本篇文章將簡單的介紹這個機制運作的方式,並且暨「[Golang][教學] 在 Heroku 建立你自己的 LINE 機器人 (LINE Bot API)」 之後,在寫一個 LINE Notify Template 的服務. 讓各位可以快速部署出自己的 LINE Notify 的服務. LINE Notify LINE Notify 的申請頁面 跟 LINE Bot 的不同,建議各位可以先去申請 Github 或是 IFTTT 的服務. 你會發現有一個新的帳號加你為好友,千萬不能封鎖 不然所有的 LINE Notify 都會收不到. 如果你可以正常的串接 Github 或是 IFTTT 的 Line Notify ,我們就可以繼續以下的相關工作. 開發 LINE Notify 服務 講到要如何開發一個 LINE Notify 的服務,主要需要進行以下幾件事情: 到 LINE Notify 的申請頁面 註冊你將要啟動的服務,來取得 Client ID 跟 Client Secret 一個靜態網頁來負責開啟 POST 資訊到 LINE Notify 並且讓使用者在 LINE Notify 上面登入帳號與傳送相關資訊 開發一個 API 端口(auth)負責跑 LINE Notify oauth 來讓使用者的 LINE 帳號與 Line Notify 的服務器登陸服務 開發另一個端口(callback)來接收,傳送回來的 token 並且儲存作為之後通知之用 最後有一個發送通知的端口(或是服務器透過資訊變更而啟動) 的端口 (notify) ,負責將要更新的資訊傳送給 LINE Notify 服務器來轉發到 Line Noty 的帳號上 在服務的說明上,可以參考 Line Notify 的官方網頁 或是 Poy Chang 所寫的「實作 Line Notify 通知服務 (1)」 都相當清楚. 但是本篇文章是希望能快速帶領各位完成一個 LINE Notify 的服務,所以接下來會使用我所開發的 LINE notify repo 來介紹. 透過 Line Notify Template 快速建立服務 Line Notify Template Repo: https://github.com/kkdai/linenotify 接下來的文章,將會一個個來解釋該如何透過 LINE Notify Template 來快速進行開發: 申請一個 Line Notify 服務: 記得到這個網址來申請你需要的 LINE...
繼續閱讀