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登入的應用了