如果有一個需求是希望藉由LINE PUSH API來做訊息的傳遞,不見得每個情境都適合叫使用者去跟機器人講話,進而取得 User ID,這時候就適合使用LINE Login API了。LINE Login也可以藉由URL的參數來設定是否讓使用者登入時,順便詢問加機器人為好友。
加好友可說是非常重要的環節,大多的通訊軟體機器人都會限制陌生傳訊,意思是即使你知道我的ID,在我不是主動聯繫過的情況下,機器人是無法傳送訊息的。況且很多都是使用該應用程式ID的方式在運作,所謂該運用程式ID的部分,就好比A跟B都申請了LINE 機器人,但是對於使用者C的LINE授權所取得的LINE User ID,A跟B所獲得的會是不同的。
OAuth2.0
在實作登入的時候,常常會看到OAuth這個專有名詞,簡而言之OAuth就是在使用者允許/授意下,提供第三方該網站的資料,但不會提供該帳號及密碼,也可以進行取消的動作。
LINE Login API也是以OAuth2.0流程來做,當使用者點擊LINE登入的時候,我們只會取得部分資料,並沒辦法取得更深入的個人資料。
大致上的流程如下
- 使用者點擊LINE登入並授權
- 此時網站會取得授權碼( code)
- 利用授權碼( code)再跟LINE 取得token
- 使用token索取個人資料
至於如何到LINE Developers申請一個LINE Login API,筆者就不詳述了,要注意的是取得授權碼( code)後,要使用LINE Login API上的資料,去跟LINE做資料索取,但記得授權碼( code)通常只能使用一次。
以LINE來說,授權碼( code)去索取資料後,可以得到access token…等資料,便可以使用。可以取得的資料如下
- 使用者LINE User id(授權給該應用程式)
- 使用者LINE名稱(目前)
- 使用者LINE大頭照(目前)
- 使用者LINE狀態(目前)
切記在開發的時候要注意,redirect_uri與Callback URL的部分,是不是跟LINE Developers上所設置的相同。
順便提供一下在LINE Developers的HTTP狀態碼,這個在除錯的時候可以參考一下。
HTTP狀態 描述
- 200 OK 請求成功
- 400錯誤的要求 請求有問題。檢查請求參數和JSON格式。
- 401未經授權 檢查授權頭是否正確。
- 403禁止 未經授權使用API。確認您的帳戶或計劃已被授權使用API。
- 429請求過多 確保您在請求的速率限制內。
- 500內部服務器錯誤 API服務器上的臨時錯誤。
還有出現莫名的登入失敗時,可以考慮清除一下瀏覽器的紀錄喔!!