參考資訊
- Integrating LINE Login with your web app | LINE Developers
- LINE Login v2.1 API reference | LINE Developers
--
流程一:到開發者後台建立 LINE 登入的 App channel
- 登入 LINE Developers
- 建立或選擇 Provider
- 點選「Create new channel」 → 選擇「LINE Login」 → 填寫資料
- 切換「App settings」分頁,輸入 Callback URL 必須是 https://
--
流程二:使用程式取得登入後的 LINE 使用者 id
步驟
- 使用 https://access.line.me/oauth2/v2.1/authorize 取得 code,取得的方式是後台設定的 Callback URL
- 將取得的 code 丟給 https://api.line.me/oauth2/v2.1/token 來換 access_token
- 將 access_token 丟給 https://api.line.me/v2/profile 來取得使用者資料
範例:
發送以下網址
順利的話在後台設定的 Callback URL 就會得到類似
自己寫程式去撈 code 變數,將 code 丟給 token
順利的話可以得到類似
最後把 access_token 丟到 profile 取得登入使用者資料
就可以得到
--
https://access.line.me/oauth2/v2.1/authorize?
?後面接上參數,說明如下
參數 | 類型 | 必填? | 描述 |
---|---|---|---|
response_type |
字串 | 必填 | code |
client_id |
字串 | 必填 | LINE登錄頻道ID。您可以在LINE開發者控制台中找到它。 |
redirect_uri |
字串 | 必填 | 在LINE開發者控制台上註冊的回調URL的URL編碼字串。您可以新增任何查詢參數。 |
state |
字串 | 必填 | 用於防止的唯一字母數位字串跨站請求偽造 (開啟新視窗).Web 應用應為每個登錄會話生成一個隨機值。這不能是 URL 編碼的字串。 |
scope |
字串 | 必填 | 從使用者請求的許可權。有關詳細資訊,請參閱作用域。 |
如果需要傳遞額外的參數,就附加在 redirect_uri 上,例如要和帳號綁定 LINE 帳號需要 user_id,那就可以在網址後面加上 ?user_id=xxxx 這樣傳遞,不過後面 token 的 redirect_uri 也要相同
scope 說明
Scope | Profile information |
ID token (including user ID) |
Display name in ID token |
Profile image URL in ID token |
Email address in ID token |
---|---|---|---|---|---|
profile |
✓ | - | - | - | - |
profile%20openid |
✓ | ✓ | ✓ | ✓ | - |
profile%20openid%20email |
✓ | ✓ | ✓ | ✓ | ✓ (see note) |
openid |
- | ✓ | - | - | - |
openid%20email |
- | ✓ | - | - | ✓ (see note) |
登入開始需要用程式來處理一些參數,例如 state ,當然固定值也可以
如果 redirect_uri 有特殊字元 ? & 就需要使用 urlencode() 來編碼
--
https://api.line.me/oauth2/v2.1/token
grant_type | authorization_code |
code | 從 LINE 平台收到的授權碼 |
redirect_uri | 與授權請求redirect_uri中指定的值相同。 |
client_id | 在LINE 開發者控制台中找到。 |
client_secret | 在LINE 開發者控制台中找到。 |
PHP 程式範例
--
https://api.line.me/v2/profile
PHP 程式範例
--
PHP curl 完整程式範例
--
1,957 total views, 8 views today