如果有一個需求是希望藉由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登入的時候,我們只會取得部分資料,並沒辦法取得更深入的個人資料。

大致上的流程如下

  1. 使用者點擊LINE登入並授權
  2. 此時網站會取得授權碼( code)
  3. 利用授權碼( code)再跟LINE 取得token
  4. 使用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服務器上的臨時錯誤。

還有出現莫名的登入失敗時,可以考慮清除一下瀏覽器的紀錄喔!!

#Chatbot







你可能感興趣的文章

如何用 Markov Decision Process 描述 Human-Robot Interaction 問題

如何用 Markov Decision Process 描述 Human-Robot Interaction 問題

For 大家族 for 迴圈、forEach、for...in、for...of 一次搞清楚

For 大家族 for 迴圈、forEach、for...in、for...of 一次搞清楚

淺層複製及深層複製

淺層複製及深層複製






留言討論