TRƯƠNG MINH KIÊN · HỆ THỐNG TRIỂN KHAI AI
← Về truongminhkien.vn
Bước 4 / 15 · Cài đặt hạ tầng

Cài Lark

Lark là nơi lưu mọi dữ liệu của toàn hệ thống — khách hàng, đơn hàng, lịch đăng bài, hội thoại. Mọi công cụ khác trong hệ thống này đều đọc/ghi vào đây. Cài xong bước này, Claude AI của bạn sẽ tự đọc/ghi được vào Lark Base.

Yêu cầu trước khi bắt đầu

Các bước cài đặt

1

Cài lark-cli

Mở Terminal/PowerShell, gõ:

npm install -g @larksuite/cli

Kiểm tra:

lark-cli --version
2

Cấu hình app lần đầu

lark-cli config init --new

Lệnh này in ra 1 đường link + mã QR — mở link đó trên trình duyệt của chính bạn để tạo app Lark gắn với tài khoản của bạn. Đừng đưa mật khẩu Lark cho ai/AI nào — chỉ cần mở link và làm theo trên chính trình duyệt bạn đang đăng nhập.

3

Đăng nhập

lark-cli auth login --recommend

Lại hiện link — mở trên trình duyệt, xác nhận đăng nhập. Kiểm tra đã đăng nhập thành công:

lark-cli auth status
4

Tạo bảng Lark Base dùng xuyên suốt hệ thống

Lark Base giống Excel/Airtable — mỗi bảng lưu 1 loại dữ liệu. Tạo ngay bảng chính này để các bước sau chỉ việc nối vào:

Bảng Lead (khách để lại thông tin): nói với Claude AI: "Tạo cho tôi 1 Lark Base tên 'Lead - [tên dự án của bạn]', 1 bảng có cột Họ và tên / Số điện thoại / Email / Ngày tạo." Dùng ở Bước 12 (Lead Magnet) và mọi nơi thu thông tin khách sau này. Claude sẽ tự dùng lark-cli để tạo, trả về app_tokentable_id — ghi lại đầy đủ, dùng ở mọi bước sau.

Không cần tự tạo bảng "Lịch đăng bài" ở đây — bảng đó (và 4 bảng khác) sẽ được workflow init-tables của repo thật tự động tạo ngay trong Base này ở Bước 8 (Đăng Facebook tự động). Tự tạo tay trước ở đây sẽ ra 1 bảng thừa, không phải bảng mà script Bước 8 thực sự đọc/ghi.

⚠ Bẫy đã gặp thật + cách gỡ

0. 🔴 Nghiêm trọng nhất — mời quyền cao nhất qua giao diện vẫn báo "you don't have permission" (91403)

Nếu Base được tạo bằng cách bấm icon chuyển đổi ứng dụng ngay trên giao diện Lark, Base đó tự động bị đưa vào không gian "Wiki" — khi đó mời app làm cộng tác viên qua nút "Chia sẻ" trên giao diện (dù chọn quyền cao nhất "Có thể quản lý", dù giao diện báo "Đã mời" thành công) vẫn KHÔNG được nhận diện đúng ở tầng API. Đã thử đủ cách qua giao diện (bật Bot, đổi quyền chia sẻ toàn tổ chức, xoá cache token lấy token mới, mời lại quyền cao nhất) — vẫn báo lỗi y hệt. Đây là lỗi/giới hạn thật ở tầng nền tảng, không phải do làm sai bước nào.

Cách gỡ (đã xác nhận hết lỗi ngay từ lần thử đầu): đừng tạo Base qua icon chuyển đổi ứng dụng trên giao diện — yêu cầu Claude AI tạo Base thẳng qua dòng lệnh (không qua Wiki), rồi cấp quyền ghi cũng qua dòng lệnh (không qua nút "Chia sẻ" trên giao diện). Nếu 1 Base đã lỡ tạo qua giao diện và dính lỗi này, cách nhanh nhất là tạo Base MỚI theo đúng cách trên, không cố sửa Base cũ.

1. npm chặn cài đặt bằng "allow-scripts"

Sau npm install -g @larksuite/cli, npm chặn script cài đặt sau cùng, và npm approve-scripts báo "không có gì đang chờ" — không giải quyết được gì.

Cách gỡ: chạy thẳng script bị chặn:

node "$(npm root -g)/@larksuite/cli/scripts/install.js"

2. Lệnh đăng nhập bị timeout giữa chừng

Nếu chạy config init/auth login trong 1 giới hạn thời gian ngắn (ví dụ lệnh tự huỷ sau 20 giây), nó bị giết ngay khi vừa in ra link — trước khi kịp mở trình duyệt bấm vào.

Cách gỡ: luôn để lệnh này chạy không giới hạn thời gian / chạy nền, đợi vài phút cho tới khi tự xác nhận xong — đừng vội huỷ.

3. Link đăng nhập hết hạn

user_code trong link đăng nhập chỉ sống vài phút. Nếu bấm vào mà báo hết hạn/không hợp lệ, đừng cố lại link cũ.

Cách gỡ: chạy lại đúng lệnh ở Bước 2/3 để lấy link mới, bấm ngay trong vài phút.

4. Bot báo lỗi "you don't have permission" (code 91403) khi ghi/xoá dữ liệu

App bot mặc định không đủ quyền ghi/xoá record trong Base, dù đã được thêm làm thành viên.

Cách gỡ: chạy lệnh với quyền người dùng thay vì bot (thêm cờ --as user), rồi làm theo link xác thực hiện ra để cấp quyền qua chính tài khoản của bạn.

5. PowerShell làm hỏng dữ liệu JSON khi gửi lệnh

Trên Windows, nếu truyền thẳng 1 đoạn JSON vào lệnh (ví dụ --json '{"a":"b"}'), PowerShell tự ý bỏ dấu ngoặc kép, lệnh nhận sai dữ liệu, báo lỗi kiểu "invalid character".

Cách gỡ: ghi nội dung JSON ra 1 file riêng trước, rồi trỏ lệnh vào file đó (ví dụ --json "@./du-lieu.json") thay vì gõ thẳng.