สอนสร้าง Line Chatbot ด้วย Spring Boot

การพัฒนา Line Chatbot ด้วย Spring Boot เป็นเรื่องที่น่าสนใจและสามารถช่วยให้ธุรกิจหรือโครงการต่างๆ สามารถตอบสนองความต้องการของผู้ใช้งานได้อย่างมีประสิทธิภาพ บทความนี้จะช่วยให้คุณเข้าใจวิธีการสร้าง Line Chatbot โดยใช้ Spring Boot ได้อย่างง่ายดาย


1. เตรียมความพร้อม

สิ่งที่ต้องมี:

  1. บัญชี LINE Developers
    สมัครและสร้าง Messaging API Channel เพื่อเชื่อมต่อกับ LINE Platform 

  2. Spring Boot Framework
    ติดตั้ง Spring Boot และตั้งค่าโปรเจกต์เบื้องต้น

  3. Ngrok (หรือ Reverse Proxy อื่นๆ)
    ใช้เพื่อเปิดให้ LINE Webhook เข้าถึงเซิร์ฟเวอร์ที่รันในเครื่องของคุณได้

  4. JDK และ Maven
    สำหรับจัดการ dependencies และรันโปรเจกต์


2. สร้างโปรเจกต์ Spring Boot

  1. เริ่มต้นโปรเจกต์ด้วย Spring Initializr

    • เข้าไปที่ Spring Initializr
    • เลือก dependencies: Spring Web และ Spring Boot DevTools
    • ดาวน์โหลดโปรเจกต์แล้วนำมารันใน IDE ที่คุณใช้ (เช่น IntelliJ IDEA หรือ Eclipse)
  2. เพิ่ม dependencies สำหรับ LINE Messaging API
    แก้ไขไฟล์ pom.xml:

    <dependency>
        <groupId>com.linecorp.bot</groupId>
        <artifactId>line-bot-spring-boot</artifactId>
        <version>4.7.0</version> <!-- ตรวจสอบเวอร์ชันล่าสุด -->
    </dependency>
    

3. การตั้งค่า LINE Messaging API

  1. รับข้อมูล Channel Access Token และ Channel Secret

    • ไปที่ LINE Developers Console
    • คัดลอก Channel Access Token และ Channel Secret
  2. เพิ่มค่าการตั้งค่าใน application.yml หรือ application.properties:

    line.bot:
      channel-token: "YOUR_CHANNEL_ACCESS_TOKEN"
      channel-secret: "YOUR_CHANNEL_SECRET"
    

4. เขียนโค้ดสำหรับรับข้อความ

  1. สร้าง Controller เพื่อรับ Webhook:

    @RestController
    @RequestMapping("/callback")
    public class LineBotController {
    
        private final LineMessagingClient lineMessagingClient;
    
        public LineBotController(LineMessagingClient lineMessagingClient) {
            this.lineMessagingClient = lineMessagingClient;
        }
    
        @PostMapping
        public void callback(@RequestBody LineBotCallbackRequest events) {
            events.getEvents().forEach(event -> {
                if (event instanceof MessageEvent messageEvent) {
                    handleTextMessageEvent((MessageEvent<TextMessageContent>) messageEvent);
                }
            });
        }
    
        private void handleTextMessageEvent(MessageEvent<TextMessageContent> event) {
            String replyToken = event.getReplyToken();
            String userMessage = event.getMessage().getText();
    
            TextMessage replyMessage = new TextMessage("คุณพิมพ์: " + userMessage);
            lineMessagingClient.replyMessage(new ReplyMessage(replyToken, replyMessage));
        }
    }
    
  2. เพิ่ม Bean สำหรับ LineMessagingClient:

    @Configuration
    public class LineBotConfig {
    
        @Bean
        public LineMessagingClient lineMessagingClient(LineBotProperties lineBotProperties) {
            return LineMessagingClient.builder(lineBotProperties.getChannelToken()).build();
        }
    }
    

5. ใช้ Ngrok สำหรับ Webhook

  • ติดตั้งและรัน Ngrok:
    ngrok http 8080
    
  • คัดลอก URL ที่ Ngrok ให้มา (เช่น https://abc123.ngrok.io) และตั้งค่า Webhook URL ใน LINE Developers Console เป็น:
    https://abc123.ngrok.io/callback
    

6. ทดสอบการใช้งาน

  • ทดสอบการส่งข้อความผ่าน LINE Application
  • ตรวจสอบว่า Chatbot ตอบข้อความกลับตามที่กำหนดไว้

ข้อแนะนำเพิ่มเติม

  1. เพิ่มฟีเจอร์อื่นๆ:
    เช่น การส่งรูปภาพ, การใช้งาน Flex Messages, หรือการเชื่อมต่อฐานข้อมูล

  2. ดูเอกสารเพิ่มเติม:
    LINE Messaging API Documentation: https://developers.line.biz/en/docs/


เมื่อทำตามขั้นตอนเหล่านี้ คุณจะได้ Line Chatbot ที่ใช้งานได้จริง และสามารถปรับปรุงให้ตอบโจทย์ตามความต้องการของคุณได้!

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การใช้งาน RPC (Remote Procedure Call) ด้วย Java พร้อมตัวอย่างเกมออนไลน์ (ต่อ)

เริ่มต้นสร้าง Quiz Widgets แบบสอบถามบนเว็บกัน

การใช้งาน RPC (Remote Procedure Call) ด้วย Java พร้อมตัวอย่างเกมออนไลน์อย่างง่าย