Chức năng trả lời tin nhắn Facebook tự động với n8n
Bạn hoàn toàn có thể viết chức năng trả lời tin nhắn tự động cho tài khoản Facebook cá nhân hoặc fanpage bằng cách sử dụng n8n. Tuy nhiên, bạn cần nắm một số điều quan trọng sau để chọn hướng triển khai phù hợp:
🔁 2 hướng tích hợp Facebook với n8n#
👉 1. Đối với Fanpage (Messenger)#
Đây là hướng dễ và hợp lệ nhất vì Facebook chính thức hỗ trợ API cho Fanpage qua Messenger API.
Bạn có thể tạo chatbot, auto-reply, gửi tin nhắn định kỳ... rất dễ.
n8n hỗ trợ module Facebook Graph API, bạn có thể gửi và nhận tin nhắn.
Các bước:
Tạo Fanpage Facebook (nếu chưa có).
Tạo ứng dụng trên Facebook Developer: https://developers.facebook.com/
Thêm quyền
pages_messagingvà tạo Access Token.Cài đặt webhook trong ứng dụng Facebook để gửi tin nhắn tới n8n.
Trong n8n, sử dụng:
Trigger: Webhook
- Node: HTTP Request hoặc Facebook Graph API để gửi lại tin nhắn.
👉 2. Đối với tài khoản Facebook cá nhân#
⚠️ Facebook không hỗ trợ chính thức API để gửi/nhận tin nhắn cho tài khoản cá nhân. Nếu bạn muốn điều khiển tài khoản cá nhân, bạn phải dùng các giải pháp không chính thức, như:
Sử dụng thư viện như
facebook-chat-api(Node.js) – nhưng thường bị chặn do Facebook cập nhật bảo mật.Dùng các dịch vụ trung gian như:
ChatGPT wrapper
RPA (Robotic Process Automation) mô phỏng thao tác trình duyệt
Hoặc thậm chí giả lập điện thoại + điều khiển qua ADB nếu chơi lớn 😅
⛔ Không khuyến khích vì dễ bị khóa tài khoản.
✅ Khuyến nghị: Dùng Fanpage#
Giả sử bạn đồng ý chuyển sang dùng Fanpage, mình sẽ hướng dẫn chi tiết bằng n8n.
🛠 Hướng dẫn thiết lập auto-reply Facebook Fanpage bằng n8n#
Bước 1: Tạo webhook nhận tin nhắn#
Vào n8n, tạo workflow mới.
Thêm node Webhook:
HTTP Method:
POST- Path:
facebook-webhook
- Path:
Bấm nút “Execute Node” để lấy URL.
Dùng URL này cấu hình trong Facebook Developer Console để nhận tin nhắn.
Bước 2: Xử lý nội dung#
Sau Webhook:
Thêm node IF hoặc Switch để kiểm tra nội dung tin nhắn.
Tùy theo nội dung, đưa ra phản hồi tương ứng.
Bước 3: Gửi lại tin nhắn#
Thêm node HTTP Request
Method:
POSTURL:
https://graph.facebook.com/v18.0/me/messages?access_token=PAGE_ACCESS_TOKENHeaders:
Content-Type: application/jsonBody: JSON kiểu:
{ "recipient": { "id": "PSID_USER" }, "message": { "text": "Xin chào, cảm ơn bạn đã nhắn tin!" } }
PSID_USER là ID của người nhắn tới Fanpage (có trong Webhook payload).
Để cấu hình Webhook trong Facebook (dành cho Fanpage), bạn cần thực hiện các bước dưới đây. Mình sẽ hướng dẫn chi tiết để bạn tích hợp Facebook Webhook vào n8n nhé.
🧩 Yêu cầu trước khi cấu hình Webhook#
✅ Bạn đã có Fanpage Facebook
✅ Bạn đã có tài khoản Facebook Developer: https://developers.facebook.com/
✅ Bạn đã tạo App Facebook (nếu chưa, mình sẽ hướng dẫn ngay dưới)
🛠️ Bước 1: Tạo App Facebook Developer#
Truy cập: https://developers.facebook.com/apps
Nhấn "Create App"
Chọn loại app: "Business" hoặc "None" cũng được
Điền:
App Name
Nhấn Create App
🔗 Bước 2: Kết nối App với Fanpage#
Trong App vừa tạo → chọn "Add Product"
Chọn "Messenger" → bấm Set Up
Trong menu trái, vào Messenger > Settings
Ở mục Access Tokens:
Chọn Fanpage của bạn
- Nhấn Generate Token và lưu lại access token này
🪝 Bước 3: Tạo và đăng ký Webhook#
📍Trên Facebook Developer Console:#
Vào menu Webhooks bên trái (trong App)
Nhấn "Add Callback URL"
Callback URL: Dán URL webhook do n8n cung cấp (VD:
https://your-n8n.com/webhook/facebook-webhook)- Verify Token: Bạn tự đặt, ví dụ:
my_n8n_verify_token
- Verify Token: Bạn tự đặt, ví dụ:
Nhấn Verify and Save
Lúc này Facebook sẽ gửi yêu cầu GET đến callback URL kèm theo token để kiểm tra. Nên bạn cần cấu hình n8n webhook để trả về verify token đúng cách. Mình sẽ chỉ tiếp bên dưới.
🧪 Bước 4: Xử lý Verify Token trong n8n#
Trong n8n:#
Mở Webhook Node
Chọn method:
GETThêm script xử lý như sau (dùng Function node nếu cần):
return { query: { 'hub.mode': 'subscribe', 'hub.challenge': '1234567890', 'hub.verify_token': 'my_n8n_verify_token' }, body: { message: 'Webhook verified' } }
Kết quả cần trả về:
hub.challenge: Facebook sẽ lấy giá trị này để xác nhận webhook.hub.verify_token: phải khớp với cái bạn nhập ở bước 3.
➡️ Bạn có thể dùng node Set hoặc Function để trả JSON như trên, hoặc viết đoạn mã nhỏ trong node HTTP response.
🎯 Bước 5: Chọn Events cho Webhook#
Sau khi webhook được xác thực:
Trong Webhooks > Subscriptions, chọn Page
Bấm Subscribe to Events
Tick chọn các sự kiện như:
messagesmessaging_postbacksmessage_deliveriesmessage_reads
🧾 Bước 6: Xử lý nội dung trong n8n#
Sau khi webhook hoạt động:
Facebook sẽ gửi POST request khi có tin nhắn tới Fanpage.
Payload có dạng như sau:
{ "object": "page", "entry": [{ "messaging": [{ "sender": { "id": "PSID" }, "recipient": { "id": "PAGE_ID" }, "timestamp": 1620000000, "message": { "mid": "m_1", "text": "Xin chào" } }] }] }
Bạn có thể dùng node Set, Switch, HTTP Request để xử lý và gửi lại tin nhắn tùy nội dung.
Dưới đây là một mẫu workflow hoàn chỉnh trong n8n giúp bạn:
✅ Nhận tin nhắn từ Facebook Messenger (Fanpage) ✅ Tự động phản hồi lại nội dung tin nhắn ✅ Xác minh Webhook với Facebook Developer
📦 Toàn bộ Workflow JSON (Import vào n8n)#
Bạn copy đoạn JSON sau rồi vào n8n > Menu (góc trái) > "Import from Clipboard" để dán và sử dụng:
{ "nodes": [ { "id": "Webhook", "parameters": { "path": "facebook-webhook", "httpMethod": "POST", "responseMode": "onReceived" }, "name": "Facebook Webhook", "type": "n8n-nodes-base.webhook", "typeVersion": 1, "position": [200, 300] }, { "id": "ExtractMessage", "parameters": { "functionCode": "const entry = items[0].json.entry[0];\nconst messaging = entry.messaging[0];\nconst senderId = messaging.sender.id;\nconst messageText = messaging.message.text;\n\nreturn [\n {\n json: {\n senderId,\n messageText\n }\n }\n];" }, "name": "Extract Message", "type": "n8n-nodes-base.function", "typeVersion": 1, "position": [400, 300] }, { "id": "SendMessage", "parameters": { "url": "https://graph.facebook.com/v18.0/me/messages", "method": "POST", "queryParameters": [ { "name": "access_token", "value": "YOUR_PAGE_ACCESS_TOKEN" } ], "jsonParameters": true, "options": {}, "bodyParametersJson": "={\n \"recipient\": {\n \"id\": \"{{$json[\"senderId\"]}}\"\n },\n \"message\": {\n \"text\": \"Bạn vừa gửi: {{$json[\"messageText\"]}}. Cảm ơn bạn đã liên hệ!\"\n }\n}" }, "name": "Send Auto Reply", "type": "n8n-nodes-base.httpRequest", "typeVersion": 1, "position": [650, 300] } ], "connections": { "Facebook Webhook": { "main": [ [ { "node": "Extract Message", "type": "main", "index": 0 } ] ] }, "Extract Message": { "main": [ [ { "node": "Send Auto Reply", "type": "main", "index": 0 } ] ] } } }
📌 Hướng dẫn sử dụng#
1. Thay thế token#
Trong node Send Auto Reply, phần
access_tokenbạn thay bằng token lấy từ Facebook Developer:Vào App > Messenger > Generate Token cho Fanpage
2. Cài đặt webhook URL vào Facebook#
Lấy URL từ node Facebook Webhook (bấm "Execute node" để lấy URL)
Thêm callback URL (cộng thêm
/webhook/facebook-webhook)Dùng Verify Token tùy chọn (ví dụ
my_verify_token)
3. Chọn sự kiện#
- Sau khi xác nhận URL xong, chọn
messages,message_deliveries,message_readstrong phần Subscribed Fields của Page.
✅ Kết quả#
Khi người dùng nhắn tin vào Fanpage, bot sẽ phản hồi lại ngay lập tức với nội dung:
"Bạn vừa gửi: [nội dung tin nhắn]. Cảm ơn bạn đã liên hệ!"
1 phản hồi
Bài liên quan trong #Open Source
-
Bán Source Code Website Kết Quả Xổ Số – Tự Động 100%, Chuẩn SEO, Giao Diện Đẹp
seoyttop -
Làm thế nào để đảm bảo chất lượng trong các dự án Open Source?
topdev -
Open Source Có An Toàn Hơn Phần Mềm Đóng Nguồn Không? Phân Tích Chuyên Sâu
topdev -
Tác động sâu rộng của Open Source đối với ngành công nghiệp phần mềm
topdev -
Mô Hình Kinh Doanh Nào Phù Hợp Với Các Dự Án Open Source?
topdev