發表文章

目前顯示的是有「LINE Login」標籤的文章

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(只是這...

使用C#開發Linebot(30) – 使用LINE Login時取得用戶email

圖片
先前 我們介紹過了 LINE Login這個機制,它可以讓我們的網站像是使用Google帳號做SSO(Single Sign On)一樣,達成單一登入的功能。 一旦完成整合之後,未來你的網站上的用戶,將可以用LINE帳號登入,而不需要記憶太多組帳號密碼。這和透過Google/Microsoft/FB做SSO效果相同,但,整合LINE Login有一個額外的好處,就是你有機會取得用戶的User Id,直接透過Line Bot發(Push)訊息給該用戶。這點是Google/Microsoft SSO無法實現的... 底下這個範例大致展示了如何實現LINE Login的基本功能: https://github.com/isdaviddong/Line_Login_Example 其中有一個常被開發人員問到的問題。 使用LINE Login的時候,可以透過取得的Access Token得知用戶的User ID(這很好用,只要綁定同一個Prodiver底下的LINE Bot,我們就有機會可以直接Push訊息給用戶)和Display Name、頭像…等資訊。 那可以知道用戶的email嗎? 答案是可以的,我們可以取得用戶的email。 不過有一些前提,也不難,只要你在建立LINE Login Channel的時候,Apply一下Email就可以了: 請在上面這個LINE Login後台Channel的選項中,選擇Submit,接著在跳出來的畫面中: 勾選最上方的兩個同意事項(當然,請先看過內容),然後上傳一個截圖(證明你的Web應用程式或網站有跟用戶說明你會索取用戶的email並且徵求用戶的同意使用),完成後,會發現它就變成applied: 接著,調整一下你的登入轉址程式碼,在scope部分加上openid與email: 如此一來,你會發現用戶登入時,LINE Login會跟用戶索取email: 當用戶同意,並且成功登入,導回callback URL之後,你可以透過底下這段程式碼,來取得用戶的email: 搞定~看起來超簡單。 如何完成的? 說明一下背景觀念。 這是因為當我們配置了scope=openid%20profile%20email之後,LINE Login回傳的Token JSON之中,包含了id_token這個資訊(請注意,與access_token不同): 當我們...