2020年1月13日 星期一

LINE官網機器人申請過程

第一次開發LINE機器人,需要LINE develop的帳號,請參考下列連結,建立開發者帳號。

https://developers.line.biz/en/docs/messaging-api/getting-started/


重要提醒! 一定要驗證你的email,LINE機器人才能正常工作。




先建立channel




選Messaging API


輸入你的機器人的設定,來建立你的LINE機器人。包含它的大頭照(App icon),機器人的名字(App name)。



這裡我們選Developer Trial,為了多一個PUSH MESSAGES的功能,可以主動發訊息給別人,需不是只能Reply(回應訊息)。Category及Subcategory選擇你的分類。Email是有其它事的話,可以連絡到你。




完成剛才的建立APP後,再進入你的APP繼續設定。



把下列4個地方設定好:

第一個Channel access token (long-lived),小時數預設0就好,表示這個Token沒有時間限制。

第二個Use webhooks,把它設定成Enabled。如果等下自己的PHP程式出錯,Use webhooks會自動調成Disable,你就要再回來改成Enable。

第三個Webhook URL,把你的Webhook server網址設定進去,如果你是第一次接觸Webhook,可參考Facebook Messenger API使用方法,裡面有對Webhook作解釋。但在設定這一項之前,你可能需要先建好你的Webhook程式網頁,不然它會回應失敗,這在下一段會講。

第四個Auto-reply messages,把它Disable掉,使用者才不會收到預設回應訊息。




建立下列PHP程式網頁,放在你的Server上,我喜歡設定檔名為webhook.php,存取網址要如同你上面設定的一樣。"" 要改成剛才ISSUE出來的Channel access token。記得建一個webhook.txt,放在這個程式檔的旁邊,記錄傳來的Webhook事件,到時候有問題,你可以自己打開來看發生什麼事。




    $_CONFIG['token'] = '';



    $logName = 'webhook.txt';



    $raw = file_get_contents('php://input');

    $data = json_decode($raw, true);

    rewrite($logName, "\n\n");

    rewrite($logName, "\n".$_SERVER['REQUEST_URI']);

    rewrite($logName, "\n".$raw);

    receiveMsg($data['events'][0]);



    function receiveMsg($messaging)

    {

        global $logName;

        $result = array();

        $result = sendText($messaging['replyToken']

        , 'Text received, echo: '.$messaging['message']['text']);

     

        rewrite($logName, "\n".$result[0].' : '.$result[1]);

    }



    function sendText($receive,$text){

        global $logName;

        $url = 'https://api.line.me/v2/bot/message/reply';



        $data['replyToken'] = $receive;

        $data['messages'] = array(array( 'type' => 'text', 'text' => $text) );

        $json = json_encode($data);

        rewrite($logName, "\n".$json);

        //rewrite($logName, "\n".'before http_post_data: '.$json);

        $result = http_post_data($url, $json);



        return $result;

    }

    function http_post_data($url, $data_string) {

            global $_CONFIG;

        //$token = $_CONFIG['token'];



        $ch = curl_init();



        curl_setopt($ch, CURLOPT_POST, 1);



        curl_setopt($ch, CURLOPT_URL, $url);



        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);



        curl_setopt($ch, CURLOPT_HTTPHEADER, array(



            'Content-Type: application/json; charset=utf-8' ,

            'Authorization: Bearer {'.$_CONFIG['token'].'}' ,

            'Content-Length: ' . strlen($data_string))



        );



        ob_start();



        curl_exec($ch);



        $return_content = ob_get_contents();



        ob_end_clean();

        $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);



        return array($return_code, $return_content);



    }



    function rewrite($filename, $data)

    {

        $filenum=fopen($filename,'a');

        fwrite($filenum,$data);

        fclose($filenum);

    }







從剛才設定畫面的最下面,找到QRcode,用你自己的手機的LINE加入好友,就可以開始測試。





對話結果就如同下面










沒有留言:

張貼留言

IKEA吊櫃廚櫃

 好不容易裝好IKEA買來的吊櫃,花了三天。 從組裝,鑽牆,上牆調水平,累死我了。