PHP使用line登入(下)--串接程式
line開發帳號申請完成之後
接下來進行網站的程式串接
在line開發帳號申請的時候有一個網址需要填寫
如下圖
這個網址的意思就是使用者line登入成功後
回傳資訊的位置
知道這個原理後
我們先進行第一步
在登入的地方先放一個line登入的圖示
按下登入後執行的程式碼為
<a href="#" onclick="LineAuth()"><span>LINE 登入</span></a> js程式碼為
然後程式就接到 line_box.php
前面說過這隻程式是接收使用者登入後的結果
取得到line編號之後就可以寫進資料表 當作會員的帳號 下次他再登入 也會有一樣的編號 這樣就可以完成line登入的應用了
接下來進行網站的程式串接
在line開發帳號申請的時候有一個網址需要填寫
如下圖
這個網址的意思就是使用者line登入成功後
回傳資訊的位置
知道這個原理後
我們先進行第一步
在登入的地方先放一個line登入的圖示
按下登入後執行的程式碼為
<a href="#" onclick="LineAuth()"><span>LINE 登入</span></a> js程式碼為
function LineAuth(d5_owner_num)
{
var URL = 'https://access.line.me/oauth2/v2.1/authorize?';
URL += 'response_type=code';
URL += '&client_id=';//
URL += '&redirect_uri=';
URL += '&state=abc123';
URL += '&scope=openid%20profile';
window.open(URL);
}
然後程式就接到 line_box.php
前面說過這隻程式是接收使用者登入後的結果
// 執行登入 取得登入資訊
$data = array(
"grant_type"=>"authorization_code",
"code"=>$get_code,
"redirect_uri"=>回傳網址,
"client_id"=>$client_id,
"client_secret"=>$client_secret);
$data_string=http_build_query($data);
$ch = curl_init('https://api.line.me/oauth2/v2.1/token');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS,$data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/x-www-form-urlencoded')
);
$result = curl_exec($ch);
//echo $result;
$return_arr=array();
$return_arr=json_decode($result, true);
// 解析 id_token
$data = array(
"id_token"=>$return_arr['id_token'],
"client_id"=>$client_id);
$data_string=http_build_query($data);
//echo $data_string;
$ch = curl_init('https://api.line.me/oauth2/v2.1/verify');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS,$data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/x-www-form-urlencoded')
);
$result2 = curl_exec($ch);
//echo $result;
$return_arr2=array();
$return_arr2=json_decode($result2, true);
// 取得姓名
$user_name=$return_arr2['name'];
// 取得line編號
$user_onlyID=$return_arr2['sub'];
取得到line編號之後就可以寫進資料表 當作會員的帳號 下次他再登入 也會有一樣的編號 這樣就可以完成line登入的應用了