Xây dựng tích hợp tùy chỉnh với N8N: Hướng dẫn hoàn chỉnh
N8N là gì?
N8N là một nền tảng tự động hóa quy trình công việc nguồn mở giúp người dùng kết nối các dịch vụ và ứng dụng khác nhau thông qua các quy trình công việc. Nó cung cấp một giao diện trực quan cho phép người dùng tạo các tích hợp và tự động hóa phức tạp mà không cần các yêu cầu mã hóa nặng. Mặc dù N8N đi kèm với các nút tích hợp cho các dịch vụ phổ biến, việc tạo tích hợp tùy chỉnh có thể tăng cường đáng kể khả năng của nó. Hướng dẫn này sẽ hướng dẫn bạn qua quá trình xây dựng tích hợp tùy chỉnh trong N8N, từng bước.
Điều kiện tiên quyết
Trước khi lặn vào tích hợp tùy chỉnh, bạn nên có:
- Hiểu biết cơ bản về API và webhooks.
- N8N được cài đặt trên máy hoặc máy chủ cục bộ của bạn. Bạn có thể tìm thấy các hướng dẫn cài đặt trong Tài liệu N8N.
- Một trình soạn thảo mã như mã Visual Studio hoặc văn bản tuyệt vời.
- Làm quen với JavaScript (Node.js).
Thiết lập môi trường của bạn
-
Cài đặt N8N tại địa phương: Bạn có thể dễ dàng cài đặt N8N bằng Docker hoặc NPM. Đối với hướng dẫn này, chúng tôi sẽ giả sử bạn đang sử dụng NPM.
npm install n8n -g
-
Bắt đầu N8N: Chạy N8N với lệnh sau:
n8n start
Sau khi chạy, bạn có thể truy cập Trình chỉnh sửa N8N tại http: // localhost: 5678.
Hiểu các khái niệm cốt lõi của N8N
-
Nút: Đây là các khối xây dựng của quy trình công việc N8N. Mỗi nút có thể thực hiện các tác vụ cụ thể, chẳng hạn như thực hiện các yêu cầu HTTP, thao tác dữ liệu hoặc thiết lập các kích hoạt.
-
Quy trình làm việc: Một quy trình làm việc là một chuỗi các nút được kết nối thực hiện một công việc cụ thể.
-
Thông tin xác thực: Khi kết nối với các dịch vụ bên ngoài, N8N yêu cầu thông tin đăng nhập để xác thực các yêu cầu.
Tạo một nút tùy chỉnh
-
Thiết lập cấu trúc nút: N8N sử dụng JavaScript cho các nút tùy chỉnh. Ví dụ, tạo một thư mục mới cho nút N8N tùy chỉnh của bạn, ví dụ,
n8n-custom-nodes
và tạo cấu trúc sau:n8n-custom-nodes/ ├── package.json ├── src/ │ └── YourCustomNode.node.ts └── n8n-nodes-base/YourCustomNode/ ├── YourCustomNode.node.ts └── YourCustomNode.designer.ts
-
Định nghĩa
package.json
: Tạo một cơ bảnpackage.json
tài liệu:{ "name": "n8n-custom-nodes", "version": "1.0.0", "private": true, "dependencies": { "n8n-core": "^0.99.0" }, "devDependencies": { "typescript": "^4.0.0" } }
-
Thiết lập lớp nút của bạn: TRONG
YourCustomNode.node.ts
Tạo một lớp mở rộng chức năng nút cơ sở:import { IExecuteFunctions, INodeType, INodeTypeDescription, } from 'n8n-core'; export class YourCustomNode implements INodeType { description: INodeTypeDescription = { displayName: 'Your Custom Node', name: 'yourCustomNode', icon: 'file:yourIcon.svg', group: ['transform'], version: 1, description: 'Does something special', defaults: { name: 'Your Custom Node', color: '#0000FF', }, inputs: ['main'], outputs: ['main'], properties: [ { displayName: 'Input', name: 'input', type: 'string', default: '', placeholder: 'Enter something...', required: true, }, ], }; async execute(this: IExecuteFunctions) { const input = this.getNodeParameter('input', 0); const result = await this.doSomethingSpecial(input); return this.prepareOutputData([{ json: { result } }]); } async doSomethingSpecial(input: string) { // Implement your custom logic here return `Processed: ${input}`; } }
Tạo nhà thiết kế nút
-
Xác định thuộc tính UI: TRONG
YourCustomNode.designer.ts
Thêm mã sau để xác định giao diện người dùng:import { INodeProperties } from 'n8n-workflow'; export const properties: INodeProperties[] = [ { displayName: 'Input', name: 'input', type: 'string', default: '', placeholder: 'Enter something...', required: true, }, ];
Biên dịch mã của bạn
-
Cài đặt TypeScript: Đảm bảo TypeScript được cài đặt trên toàn cầu hoặc trong dự án của bạn:
npm install -g typescript
-
Biên dịch TypeScript: Thêm tập lệnh này vào
package.json
Để tạo điều kiện tổng hợp:"scripts": { "build": "tsc" }
Chạy lệnh sau để biên dịch các tệp TypeScript của bạn:
npm run build
Kết nối N8N với nút tùy chỉnh của bạn
-
Liên kết: Tạo một liên kết tượng trưng đến các nút tùy chỉnh của bạn trong thư mục cài đặt N8N của bạn:
cd /path/to/n8n npm link /path/to/n8n-custom-nodes
-
Khởi động lại N8N: Sau khi liên kết các nút tùy chỉnh của bạn, hãy khởi động lại N8N để nhận ra nút mới.
-
Kiểm tra nút của bạn: Mở UI N8N và tạo một quy trình làm việc mới. Xác định vị trí nút tùy chỉnh của bạn trong bảng nút và thêm nó vào quy trình làm việc của bạn. Nhập một số dữ liệu kiểm tra để xem chức năng tùy chỉnh của bạn hoạt động như thế nào.
Kiểm tra và gỡ lỗi
-
Sử dụng nhật ký thực thi N8N để khắc phục sự cố. Các nhật ký sẽ giúp bạn xác định nơi các giá trị có thể không được truyền chính xác hoặc khi xảy ra lỗi trong quá trình thực hiện.
-
Kiểm tra nút tùy chỉnh của bạn một cách kỹ lưỡng với các đầu vào khác nhau để đảm bảo sự mạnh mẽ. Đầu ra đăng nhập cẩn thận để xác định các vấn đề trong logic tùy chỉnh.
Tạo thông tin đăng nhập cho API bên ngoài
-
Thiết lập lớp thông tin đăng nhập: Nếu nút của bạn kết nối với API bên ngoài yêu cầu thông tin đăng nhập, hãy tạo một lớp thông tin xác thực tương tự như lớp nút:
import { ICredentialType, INodeProperties } from 'n8n-core'; export class YourCustomNodeApi implements ICredentialType { name = 'yourCustomNodeApi'; displayName = 'Your Custom API'; properties: INodeProperties[] = [ { displayName: 'API Key', name: 'apiKey', type: 'string', required: true, placeholder: 'Enter your API key', }, ]; }
-
Tích hợp vào nút tùy chỉnh: Sửa đổi nút tùy chỉnh của bạn để sử dụng thông tin đăng nhập được lưu trữ:
const apiKey = this.getCredentials('yourCustomNodeApi').apiKey;
Các tính năng nâng cao cho các nút tùy chỉnh
-
Giới hạn tỷ lệ API: Thực hiện các thuật toán ngược theo cấp số nhân để xử lý giới hạn tỷ lệ API một cách duyên dáng.
-
Hỗ trợ Webhook: Triển khai webhooks bên ngoài để trả lời phản hồi từ nút của bạn.
-
Xử lý lỗi: Thiết lập xử lý lỗi mạnh mẽ và dự phòng trong logic nút tùy chỉnh của bạn.
-
Nhiều đầu ra: Tạo các nút xử lý nhiều đầu ra để phân biệt giữa các loại phản hồi khác nhau.
Tối ưu hóa nút tùy chỉnh của bạn
-
Kiểm tra hiệu suất: Theo dõi thời gian thực hiện các nút tùy chỉnh của bạn với các công cụ như móc hiệu suất của Node.js.
-
Tài liệu: Đảm bảo các nút tùy chỉnh của bạn bao gồm tài liệu chi tiết để dễ hiểu và tích hợp.
Phần kết luận
Xây dựng tích hợp tùy chỉnh trong N8N mở ra một thế giới khả năng để tự động hóa quy trình làm việc của bạn. Thực hiện theo các bước được nêu ở trên, bạn có thể tạo các nút mạnh mẽ tương tác với các API và dịch vụ khác nhau được điều chỉnh để đáp ứng nhu cầu cụ thể. Bằng cách tăng cường khả năng của N8N với các nút và thông tin tùy chỉnh, bạn sẽ tăng đáng kể năng suất và hợp lý hóa các quy trình.
Tài nguyên bổ sung
- Tài liệu chính thức của N8N: n8n.io/docs
- Kho lưu trữ N8N GitHub: N8n/n8n
- Diễn đàn cộng đồng: Tham gia với người dùng và nhà phát triển đồng nghiệp trên các nền tảng như Diễn đàn cộng đồng N8N.
Bằng cách tận dụng các tài nguyên này và làm theo hướng dẫn này, bạn sẽ tiếp tục làm chủ các tích hợp tùy chỉnh với N8N và nâng cao quy trình công việc tự động hóa của bạn lên tầm cao mới.