2. การนำ Line chat Bot มาใช้ในการเรียนการสอน
การสร้างระบบโต้ตอบข้อความอัตโนมัติของ ไลน์@
การสร้างระบบโต้ตอบข้อความอัตโนมัติ ซึ่งใช้บัญชี @Line
เข้าไปที่ เว็บไซต์ https://developers.line.biz/
เลื่อนลงไปด้านล่างของหน้า
คลิกเลือก Messaging API
คลิกเลือก Start now
เลือก chanel type เป็น Messaging API
Provider ให้เลือก Create a new provider
เลื่อนลงไปด้านล่างอีก
สร้างชื่อ Channel name ซึ่งเป็นชื่อที่ผู้อื่นเห็นในไลน์
ระบุ Channel description รายละเอียดบริการของเรา
เลือก Category เป็น การศึกษา
เลือก Subcategory ตามที่เกี่ยวข้อง
กรอก Email address ของท่าน
จากนั้นเลื่อนหน้าลงไปจนสุด
ทำเครื่องหมาย ในช่องกา ทั้งสองช่อง
คลิก Create
จะได้ Channel ที่สร้างขึ้น
คลิกที่ ชื่อ Channel ของท่าน
แล้วคลิกที่ Messaging API
จดบันทึกค่า Bot basic ID เพื่อนำไปใช้แจกให้ผู้อื่น เพื่อเพิ่มเป็นเพื่อน
หรืออาจบันทึกรหัส QR เก็บไว้ เพื่อแจกจ่ายด้วยก็ได้
ในส่วน Webhook setting ตรงช่อง Webhook URL ให้เว้นว่างไว้ หากไม่ได้ใช้สมบัตินี้ก็ไม่ต้องเลื่อนสวิตช์ Use webhook หากจะใช้งาน ต้องเลื่อน ให้เป็น On และจะต้องกรอกเส้นทางไปยังเว็บเซิฟเวอร์ ที่ท่านมีอยู่ ในช่อง Webhook URL และต้องเป็น SSL คือ https:// เท่านั้น
เลื่อนหน้าจอลงไปอีก
ในหัวข้อ Auto-reply messages ให้คลิกที่ Edit สีเขียว ทางขวามือ
จะปรากฏหน้าต่างใหม่
ในส่วน Main setting ต้องเลือก Bot และ Enabled
ในส่วน Detailed setting เลือก Auto-response เป็น Enabled และ Webhooks เลือก Disabled
จากนั้น คลิกที่ ปุ่ม Auto response message setting
ในส่วน Auto-response messages ให้คลิก New Message
เมื่อปรากฏหน้าต่างใหม่
ให้คลิกที่ หน้าต่างตัวอย่าง เพื่อย่อหน้าต่าง Preview ลง
กำหนด ชื่อหัวเรื่องของข้อความ ในช่อง Title เช่น ทักทาย
กาเครื่องหมาย ในช่อง Use keywords
เติมข้อความที่จะรับ ในช่อง key words พิมพ์คำที่ต้องการ กด Enter และพิมพ์คำที่สอง กด Enter เช่น พิมพ์ สวัสดี กด Enter และ พิพ์ สวัสดีครับ กด Enter
เติมข้อความโต้ตอบ ในช่อง Enter text เช่น Hello ในที่นี้ หมายความว่า เมื่อได้รับข้อความ “สวัสดี” หรือ “สวัสดีครับ” ระบบ Messaging API จะส่งข้อความตอบรับ ด้วยข้อความว่า “Hello”
จากนั้น กด Save Message
ทำซ้ำขั้นตอนที่ 32 ถึง 36 จนมีข้อความครบถ้วนตามต้องการ
จากนั้น ให้เพิ่มเพื่อนลงใน Line App บนสมาร์ทโฟน โดยเพิ่มเพื่อน ที่มีเครื่องหมาย @ ตามขั้นตอนในข้อที่ 20 - 21
หากกลับมาแก้ไข เพิ่มเติม ในภายหลัง ให้ทำซ้ำขั้นตอน ในข้อที่ 1-4, 17-18, 24, 25, และ 28 - 37
ผลที่ได้ จากการกำหนดค่า
@@@@@@@@@@@
หากต้องการใช้ Message API แบบ Webhook
ให้ทำตามขั้นตอนข้อที่ 1 - 25 ในส่วน Detailed setting เลือก Auto-response เป็น Disabled และ Webhooks เลือก Enabled
ไม่ต้องทำขั้นตอน ในข้อ 26 จนถึง 37
ต้องระบุชื่อเส้นทาง URL ไปยังเว็บ เซิฟเวอร์ ที่เป็น SSL คือ เว็บไซต์ที่ขึ้นต้นด้วย https://
ต้องสร้าง Access Token ในหัวข้อ Channel access token (long-lived) ซึ่งอยู่ในหน้าการตั้งค่า Messaging API เพื่อนำไปใช้ในไฟล์ php
จำเป็นต้องเขียนโค้ด และนำไปวางไว้ใน เซิฟเวอร์ของท่าน เพื่อใช้งาน โดยอาจเขียนด้วย Python หรือ php ก็ได้ แล้วแต่ความถนัดของผู้พัฒนา
ในการเขียน โค้ด php นั้น ต้องเขียนเก็บไว้ในไฟล์ ชื่อ index.php แล้วนำไปวางไว้ใน โฟลเดอร์บนเซิฟเวอร์ ของท่าน
ไฟล์ที่เก็บข้อความโต้ตอบ จะเก็บอยู่ในไฟล์ dialog.csv ซึ่งต้องนำไปวางไว้ใน โฟลเดอร์บนเซิฟเวอร์ เดียวกันกับข้อ 6 ด้วยเช่นกัน
โค้ดคำสั่ง php ในไฟล์ index.php
<?php
//
/*Get Data From POST Http Request*/
$datas = file_get_contents('php://input');
/*Decode Json From LINE Data Body*/
$deCode = json_decode($datas,true);
file_put_contents('log.txt', file_get_contents('php://input') . PHP_EOL, FILE_APPEND);
$replyToken = $deCode['events'][0]['replyToken'];
$userId = $deCode['events'][0]['source']['userId'];
$text = $deCode['events'][0]['message']['text'];
// Bot Basic โค้ดที่ปรับปรุงแก้ไขได้ อยู่ในช่วง // Bot Basic จนถึง // End Bot Basic
$handle = fopen("dialog.csv", "r");
while (($data = fgetcsv($handle, 256, ",")) != FALSE)
{
if (trim(strtolower($text)) == trim($data[0]))
{
$resp = $data[1];
break;
}
// while loop
else
{
// $resp = "Sorry,I don't understand.\nI can response with text not an image or imoji.\n\nขออภัยครับ ... ไม่เข้าใจ\nโต้ตอบด้วยข้อความ ไทย/ENG\nสำหรับภาษาไทย พิมพ์ไม่เว้นวรรคระหว่างคำนะครับ";
// Time telling
if ((trim(strtolower($text)) == "time") || (trim(strtolower($text)) == "what time") || (trim(strtolower($text)) == "กี่โมง")|| (trim(strtolower($text)) == "กี่โมงแล้ว") || (trim(strtolower($text)) == "กี่โมงแล้วครับ"))
{
date_default_timezone_set('Asia/Bangkok');
$today = getdate();
$hh = (string)$today[hours];
if (strlen($hh) < 2)
$hh = '0'.(string)$hh;
$mm = (string)$today[minutes];
if (strlen($mm) < 2)
$mm = '0'.$mm;
$resp = "This time: ".$hh.':'.$mm." ..... ขณะนี้เวลา ".$hh.':'.$mm." น.";
}
// Date telling
if ((trim(strtolower($text)) == "date") || (trim(strtolower($text)) == "what date") || (trim(strtolower($text)) == "วันที่")|| (trim(strtolower($text)) == "วันนี้ วันที่") || (trim(strtolower($text)) == "วันที่เท่าไหร่") || (trim(strtolower($text)) == "วันที่เท่าไหร่แล้วครับ"))
{
date_default_timezone_set('Asia/Bangkok');
$mydate=getdate(date("U"));
$resp = "$mydate[weekday], $mydate[month] $mydate[mday], $mydate[year]";
}
// where
if ((trim(strtolower($text)) == "where") || (trim(strtolower($text)) == "อยู่ไหน") || (trim(strtolower($text)) == "บ้านอยู่ไหน") || (trim(strtolower($text)) == "บ้านอยู่ที่ไหน") || (trim(strtolower($text)) == "อยู่ที่ไหนคะ") || (trim(strtolower($text)) == "อยู่ที่ไหนครับ") || (trim(strtolower($text)) == "บ้านอยู่ที่ไหนครับ") || (trim(strtolower($text)) == "บ้านอยู่ที่ไหนคะ") )
{
$resp = "address : หมู่ ** ตำบลบ้านแหลม อำเภอบ้านแหลม เพชรบุรี 76110 ประเทศไทย ";
}
//
} // else loop
} // while loop
fclose($handle);
// End Bot Basic ส่วนถัดจากนี้ ไม่ควรแก้ไข แต่ให้เข้าไปเติม Line Token ที่ได้รับจาก Message API แบบ Webhook ขั้นตอนที่ 4 โดยแทนที่ตรงข้อความ “*** token ของคุณ ***” ในบรรทัดที่ 6 ถัดลงไปจากนี้
$messages = [];
$messages['replyToken'] = $replyToken;
$messages['messages'][0] = getFormatTextMessage($resp);
$encodeJson = json_encode($messages);
$LINEDatas['url'] = "https://api.line.me/v2/bot/message/reply";
$LINEDatas['token'] = "*** token ของคุณ ***";
$results = sentMessage($encodeJson,$LINEDatas);
/*Return HTTP Request 200*/
http_response_code(200);
function getFormatTextMessage($text)
{
$datas = [];
$datas['type'] = 'text';
$datas['text'] = $text;
return $datas;
}
function sentMessage($encodeJson, $datas)
{
$datasReturn = [];
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $datas['url'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $encodeJson,
CURLOPT_HTTPHEADER => array(
"authorization: Bearer ".$datas['token'],
"cache-control: no-cache",
"content-type: application/json; charset=UTF-8",
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err)
{
$datasReturn['result'] = 'E';
$datasReturn['message'] = $err;
}
else
{
if ($response == "{}")
{
$datasReturn['result'] = 'S';
$datasReturn['message'] = 'Success';
}
else
{
$datasReturn['result'] = 'E';
$datasReturn['message'] = $response;
}
}
return $datasReturn;
}
?>
ไฟล์เก็บข้อความประโยคสนทนา ชื่อ dialog.csv สร้างด้วย notepad++ โดยบันทึกในรูปแบบ UTF-8 หรือ notepad
ตัวอย่างข้อมูล ในไฟล์ เมื่อนำไปใช้งาน หากผู้ใช้พิมพ์ อังกฤษ ตอบ En/ไทย ผู้ใช้พิมพ์ ไทย ตอบ En/ไทย
bye,See you again later. ... แล้วพบกันครับ
go to travel,You only think about traveling. ... คิดแต่เรื่องเที่ยวนะครับ
good afternoon,Good afternoon sir. ... สวัสดียามบ่ายครับ
good bye,Boring me,Don't you? ... เบื่อแล้วเหรอครับ
good morning,Good morning sir. ... สวัสดียามเช้าครับ
hello,How are you? ... สบายดีไหมครับ
hi,Howdy. ... เป็นไงบ้างครับ
how about you,I'm fine and you. ... สบายดีครับ แล้วคุณล่ะครับ
how are you,Fine thanks and you? ... สบายดี ขอบคุณ แล้วคุณล่ะครับ
how old are you,Don't ask that. ... ถามอายุ ไม่บอกครับ
hungry,Have something to eat first. ... หาอะไรกินก่อนดีไหมครับ
sing with me,I can't sing any song. ... ร้องเพลงไม่ได้ครับ
sleepy,Why do you complain about being sleepy? ... จะบ่นทำไม ง่วงก็ไปนอน นะครับ
so bore,What you bore? ... เบื่ออะไรล่ะครับ
so boring,Is it very boring? ... มันน่าเบื่อมากเลยเหรอครับ
thanks,You're welcome. ... ยินดีครับ
want to travel,Are you going alone? Do not invite friends as well? ... จะไปคนเดียวเหรอ ไม่ชวนเพื่อนเลยครับ
what do you do,I'm a teacher. ... ผมเป็นครูครับ
what is your name,My name is plakemphet. ... ชื่อ ปลาเค็มเพชร ครับ
where are you from,I’m from Thailand. ... ผมมาจากประเทศไทยครับ
where are you,I’m at home. ... ผมอยู่บ้านครับ
where do you work,I work for school. ... ผมทำงานที่โรงเรียนครับ
where to go,Go where you like. ... ไปสถานที่ที่คุณอยากไปครับ
who are you,I'm LINE chatbot. ... ผมคือระบบโต้ตอบอัตโนมัติ แล้วคุณล่ะครับ
กระหาย,Have something to drink. ... หาเครื่องดื่มเย็น ๆ สักแก้ว ซิครับ
กลับบ้านดีไหม,No no. ... ไม่ดีแน่ งานยังไม่เสร็จเลยครับ
กลับบ้านได้ยัง,Why hurry back? ... จะรีบกลับไปทำไมล่ะครับ
กลับบ้านได้หรือยัง,If your work is finished Can go back. ... ถ้างานเสร็จแล้ว ก็กลับได้ครับ
กลับได้ยัง,No .. Where are you going? ... ยังครับ จะรีบไปไหน
ขอบคุณ ค่ะ,You're welcome. ... ยินดีครับ
ขอบคุณ ครับ,You're welcome. ... ยินดีครับ
ขอบคุณครับ,You're welcome. ... ยินดีครับ
ขอบคุณค่ะ,You're welcome. ... ยินดีครับ
คิดถึง,Think of you so. ... คิดถึง ... คิดถึง ... คนึงหา .....
คุณ คือใคร,I'm chatbot. ... ผมเป็นระบบโต้ตอบข้อความอัตโนมัติครับ
คุณคือใคร,I'm chatbot. ... ผมเป็นระบบโต้ตอบข้อความอัตโนมัติครับ
คุณทำงานทีอยู่่ไหน,I work for school. ... ผมทำงานที่โรงเรียนครับ
คุณทำงานอะไร,I'm a teacher. ... ผมเป็นครูครับ
คุณนับถือศาสนาอะไร,I'm a buddhism. ... ผมนับถือศาสนาพุทธครับ
คุณพูดได้กี่ประโยค,About 100 for today. ... ประมาณ 100 ประโยคครับ
คุณมาจากประเทศอะไร,I’m from Thailand. ... ผมมาจากประเทศไทยครับ
คุณรู้กี่ประโยค,About 100 for today. ... ประมาณ 100 ประโยคครับ
คุณอยู่ที่ไหน,I’m at home. ... ผมอยู่บ้านครับ
งง,What are you confused?. ... งงอะไรล่ะครับ
ง่วง,That was so much work that you had gone to sleep. ... นั่นแหละ บ้างานมากจนอดหลับอดนอน ก็ยังงี้ครับ
ง่วงจัง,Why do you complain about being sleepy? ... จะบ่นทำไม ง่วงก็ไปนอน นะครับ
ง่วงนอน,Do something a little bit complaining sleepy. ... ทำอะไรนิด ๆ หน่อย ๆ ก็บ่นแต่ง่วงนะครับ
ชื่ออะไร,My name is plakemphet. ... ชื่อ ปลาเค็มเพชร ครับ
ตื่นยัง,Just wake up. ... ตื่นแล้วซิคร้าบ
ตื่นหรือยัง,Just wake and eat breakfast. ... ตื่นแล้วคร้าบ
นก,No no. ... ไม่ครับ ไม่นกครับ
นอน หรือยัง,Do some little bit before bed. ... ทำอะไรนิด ๆ ก่อนนอนครับ
นอนยัง,Do some little bit before bed. ... ทำอะไรนิด ๆ ก่อนนอน นะครับ
นอนหรือยัง,Do some little bit before bed. ... ทำอะไรนิด ๆ ก่อนนอน นะครับ
ปวดฉี่,Where is the toilet. ... สุขาอยู่หนใด ไปหากันดีกว่าครับ
ยากจัง,I think you can do it. ... คุณต้องทำได้ครับ
ร้องเพลงให้ฟังหน่อย,I can't say even any word. ... ผมไม่สามารถพูดอะไรได้เลยแม้แต่คำเดียวครับ
ร้องเพลงได้ไหม,I can't sing any song. ... ร้องเพลงไม่ได้ครับ
ร้อน,Hot weather or hot head. ... อากาศร้อน หรือ หัวร้อน ล่ะครับ
ร้อนจัง,Find a way to cool off. ... ต้องหาวิธีคลายร้อน แล้วนะครับ
ร้อนมาก,Hot weather or hot things. ... อากาศร้อน หรืออะไรร้อน ล่ะครับ
ลำไย,I'm sorry. ... ทำไมล่ะครับ
วันนี้เป็นอย่างไรบ้าง,Fine thanks and you? ... สบายดี ขอบคุณ แล้วคุณล่ะครับ
สบายดีไหม,I'm fine and you. ... สบายดีครับ แล้วคุณเป็นอย่างไรบ้างครับ
สวัสดี ครับ,Hi. ... สวัสดีครับ
สวัสดี ค่ะ,Hi. ... สวัสดีค่ะ
สวัสดี,Hi. ... สวัสดีครับ
สวัสดีครับ,Hi. ... สวัสดีครับ
สวัสดีค่ะ,Hi. ... สวัสดีค่ะ
หิว ไหม,Chatbot never hungry. ... ผมเป็นระบบอัตโนมัติ ไม่หิวครับ
หิว,Have something to eat first. ... หาอะไรกินก่อนดีไหมครับ
หิวกาแฟ,Traditional coffee is cheaper. ... กาแฟโบราณไง เก๋ากว่า ถูกกว่านะครับ
หิวข้าว,Have to fullfill your stomach. ... หาอะไรใส่ท้องสักหน่อย นะครับ
หิวจัง,Be endure. ... not being fat. ... หิวก็ทนนะครับ จะได้ไม่อ้วนครับ
หิวน้ำ,Have something drink. ... หาอะไรดื่มสักนิด นะครับ
หิวไหม,Chatbot never hungry. ... ผมเป็นระบบอัตโนมัติ ไม่หิวครับ
อยาก,What do you want? ... อยากอะไรนักหนาครับ
อยากเที่ยว,You only think about traveling. ... คิดแต่เรื่องเที่ยวนะครับ
อยากไปเที่ยว,Are you going alone? Do not invite friends as well? ... จะไปคนเดียวเหรอ ไม่ชวนเพื่อนเลยนะครับ
เก่ง,You are quite good. ... คุณก็เก่งไม่ใช่ย่อยนะครับ
เซ่อ, Sir. ... ขุนนางของอังกฤษ เหรอครับ
เบื่อ,Why are you bored? ... เบื่อทำไมครับ
เบื่อจัง,Do not be bored. ... อย่าเบื่อเลยครับ
เบื่ออบรม,The director will hear. ... จุ๊ ๆ. ... อย่าบ่นนะ. ... เดี๋ยว ผอ. ได้ยิน นะครับ
เปรี้ยวปาก,Looking for a glass of softdrink beer or wine ... หาเครื่องดื่ม รสนุ่ม ๆ สักแก้ว นะครับ
เป็นห่วง,That's Audi car logo. ... รถยนต์เอาดี้ไง หน้าเป็นห่วง ครับ
เป็นอย่างไรบ้าง,Fine thanks and you? ... สบายดี ขอบคุณ แล้วคุณล่ะครับ
เป็นไงบ้างวันนี้,Fine thanks and you? ... สบายดี ขอบคุณ แล้วคุณล่ะครับ
เริ่ด ค่ะ,เริ่ด means great or first class. ... สมัยต้นรัตนโกสินทร์ ใช้ว่า "เปิ๊ดสะก๊าด"
เริ่ด,เริ่ด means great or first class. ... สมัยต้นรัตนโกสินทร์ ใช้ว่า "เปิ๊ดสะก๊าด"
เริ่ดค่ะ,เริ่ด means great or first class. ... สมัยต้นรัตนโกสินทร์ ใช้ว่า "เปิ๊ดสะก๊าด"
โง่,No..... not like that. ... ไม่นะ ไม่ใช่อย่างนั้นะครับ
โอมั๊ย,I'm OK. ... โออยู่ครับ
โอเค มั๊ย,I'm OK. ... โอเค อยู่ครับ
โอเค ไหม,I'm OK. ... โอเค ครับ
โอเคมั๊ย,I'm OK. ... โอเค อยู่ครับ
โอเคไหม,I'm OK. ... โอเค ครับ
โอไหม,I'm OK. ... โอครับ
ใคร น่ะ,I'm chatbot. ... ผมเป็นระบบโต้ตอบข้อความอัตโนมัติครับ
ใคร อ่ะ,I'm chatbot. ... ผมเป็นระบบโต้ตอบข้อความอัตโนมัติครับ
ใครน่ะ,I'm chatbot. ... ผมเป็นระบบโต้ตอบข้อความอัตโนมัติครับ
ใครอ่ะ,I'm chatbot. ... ผมเป็นระบบโต้ตอบข้อความอัตโนมัติครับ
ไปเที่ยวกันไหม,I didn't dare to go, afraid of Covid. ... ยังไม่กล้าไปครับ กลัวโควิดครับ
ไปเที่ยวไหนดี,That went yesterday One more time. ... ที่ไปมาเมื่อวานไง ไปอีกสักครั้ง นะครับ
ไปไหนดี,Dare not to go, afraid of Covid. ... ไม่กล้าไปครับ กลัวโควิดครับ
ไม่อยากอบรม,Let's train, get knowledge, get work too. ... อบรมเถอะน่า ได้ความรู้นะ. ... ได้ผลงานด้วยครับ
ไม่ไหวแล้ว,Is it that terrible? ... มันแย่ขนาดนั้น.เลยเหรอครับ
@ @ @ @ @ @ @ @ @ @ @