Cách kết nối Facebook, Instagram với AI Agent bằng Composio CLI

Trong bài 10 bất cập khi setup AI Agent với OpenClaw, mình có kể đoạn tự tạo Meta App, cấu hình quyền và chuẩn bị App Review để agent đăng Facebook, Instagram phức tạp thế nào. Bài này hướng dẫn cách kết nối Facebook và Instagram với AI Agent bằng Composio CLI cho workflow của chính mình.
Với workflow của mình, Composio giúp rút ngắn phần nối tài khoản: mình chọn app, đăng nhập Meta để cấp quyền, rồi dùng Composio CLI để tìm và gọi action phù hợp. Không phải tự viết OAuth flow hay tự xử lý token từ đầu.

Trong workspace Composio của mình, Facebook và Instagram đã hiện trạng thái kết nối. Đây là danh sách tài khoản đang được cấp quyền, không phải bằng chứng mọi loại quyền Meta đều đã được duyệt cho mọi use case.
Tóm tắt nhanh
- Composio đứng giữa agent và các app như Facebook, Instagram; nó cung cấp luồng kết nối tài khoản và các action có sẵn.
- Composio CLI cho phép tìm action, kết nối tài khoản, xem schema đầu vào rồi gọi action từ Terminal hoặc agent.
- Với workflow cá nhân dùng kết nối được Composio quản lý, mình không cần tự dựng một Meta App riêng chỉ để nối tài khoản của mình.
- Việc này không bỏ qua quy định quyền của Meta. Nếu làm sản phẩm cho người dùng bên ngoài hoặc dùng OAuth credentials của mình, Advanced Access và App Review vẫn có thể cần.
- Instagram API cho các tính năng doanh nghiệp cần tài khoản Business hoặc Creator; Facebook action trong ví dụ này đăng lên Page, không phải profile cá nhân.
Composio nằm ở đâu trong luồng?
Nếu tự nối Graph API, app của mình phải xử lý OAuth, callback URL, access token, quyền cần xin và việc gọi từng endpoint. Với Composio, một phần lớp kết nối đó được đóng gói sẵn: mình cấp quyền qua luồng xác thực, còn agent tìm action phù hợp trong toolkit Facebook hoặc Instagram.

Composio có plugin cho agent coding, MCP endpoint cho client tương thích MCP và CLI dùng trực tiếp trong Terminal. Trong bài này mình tập trung vào luồng CLI.
Ảnh trên có URL MCP https://connect.composio.dev/mcp, nhưng MCP và CLI là hai cách kết nối khác nhau. Nếu dùng Codex hoặc Claude Code mà không chủ động chọn MCP, tài liệu Composio hiện hướng dẫn dùng plugin native; plugin này sử dụng CLI bên dưới. Nếu đã cài CLI, mình cũng có thể gọi lệnh trực tiếp.
Cài và đăng nhập Composio CLI
Tài liệu Composio hiện hướng dẫn cài CLI trên macOS/Linux bằng lệnh:
curl -fsSL https://composio.dev/install | sh
Mở Terminal mới rồi đăng nhập:
composio login
Nếu dùng Codex và muốn cài plugin native cùng CLI:
composio setup --target codex
Nếu đã cài và đăng nhập rồi thì bỏ qua phần này. Cài CLI không tự kết nối Facebook hay Instagram; bước cấp quyền cho từng app vẫn diễn ra riêng.
Kết nối Facebook và Instagram
Kết nối từng app trong Terminal:
composio link facebook composio link instagram
Composio mở luồng xác thực để mình đăng nhập và chọn tài sản Meta cần cấp quyền. Với Facebook, chọn đúng Page. Với Instagram, chọn đúng tài khoản Business/Creator và Page liên kết nếu luồng yêu cầu.
Khi màn Meta hiện danh sách quyền, đọc kỹ trước khi chấp thuận. Sau khi quay về Composio, kiểm tra dashboard để chắc chắn đúng tài khoản/Page đã hiện active. Nếu tài khoản cá nhân và tài khoản công việc cùng đăng nhập trong trình duyệt, chọn nhầm là lỗi khá dễ gặp; đăng xuất tài khoản không dùng hoặc mở profile trình duyệt riêng sẽ giúp tránh nhầm.
Lưu ý: Việc nối tài khoản thành công chỉ xác nhận Composio nhận được quyền đã cấp. Nó không đảm bảo mọi action hoặc mọi permission của Meta đều dùng được. Quyền thực tế còn phụ thuộc loại app, access level, loại tài khoản và API mà action gọi.
Tìm action rồi mới gọi bằng CLI
Mình không cần đoán tên tool. Dùng composio search để tìm theo việc cần làm:
composio search "publish a photo post to a Facebook Page" composio search "publish an image to Instagram"
Trong kết quả tìm kiếm, CLI trả về slug action phù hợp. Ví dụ action đăng ảnh lên Facebook Page có thể là FACEBOOK_CREATE_PHOTO_POST; Instagram thường tách bước tạo media container và bước publish. Tên action hoặc schema có thể đổi theo phiên bản toolkit, vì vậy nên hỏi CLI schema ngay trước khi dùng:
composio execute FACEBOOK_CREATE_PHOTO_POST --get-schema composio execute INSTAGRAM_POST_IG_USER_MEDIA --get-schema composio execute INSTAGRAM_POST_IG_USER_MEDIA_PUBLISH --get-schema
Schema sẽ cho biết action cần Page ID hay Instagram User ID, nhận ảnh bằng URL hay file, và trường caption/message tên gì. Với Instagram, action tạo media trả về creation_id; action publish dùng ID đó để đăng. Đây là hai bước riêng, nên chỉ chạy publish sau khi đã kiểm tra đúng ảnh và caption.
Trước action có ảnh hưởng công khai, mình có thể xem trước cấu trúc input bằng --dry-run:
composio execute FACEBOOK_CREATE_PHOTO_POST \
--dry-run \
-d '{"page_id":"PAGE_ID","url":"https://example.com/image.jpg","message":"Nội dung bài đăng","published":true}'
--dry-run chỉ giúp rà payload trước khi gửi; nó không kiểm tra thay Meta rằng tài khoản đã có đủ quyền, URL ảnh có tải được hay nội dung sẽ hiển thị chính xác. Khi payload đã đúng, mới bỏ --dry-run để thực thi. Nếu đang thử lần đầu, dùng nội dung/ảnh thử phù hợp và xác nhận Page đích trước khi đăng thật.
Composio có giúp khỏi Meta App Review không?
Trong trường hợp của mình, mục tiêu là cho agent của mình làm việc với các tài khoản social mình quản lý. Composio cho sẵn phần tìm action và luồng kết nối; CLI giúp mình gọi action từ Terminal mà không phải viết đoạn OAuth, lưu token rồi tự dựng request Graph API cho từng thao tác.
Đây là điểm khác với việc xây một dịch vụ social publishing cho khách hàng. Meta phân biệt Standard Access và Advanced Access: Standard Access chỉ cho phép người có vai trò trên app dùng các quyền/features tương ứng; Advanced Access dành cho app cần phục vụ người dùng không có role và được xét theo từng permission/feature. Vì vậy, Composio có thể giúp giảm việc tự vận hành OAuth cho workflow của mình, nhưng không phải đường tắt để phân phối app ra công chúng mà không cần xét duyệt.
Nếu cần dùng OAuth app của tổ chức mình, Composio cũng hỗ trợ custom credentials. Khi đó phải cấu hình callback URI của Composio đúng trong Meta Developer dashboard; permission/access review của Meta vẫn tùy vào API và người dùng mà sản phẩm phục vụ.
Mấy giới hạn cần nhớ
Facebook action thường làm việc với Page
Slug FACEBOOK_CREATE_PHOTO_POST nhận page_id và nội dung/ảnh để đăng lên Page. Nó không biến API thành công cụ đăng tùy ý lên profile cá nhân. Cần chọn Page mình quản lý và cấp đúng quyền liên quan.
Instagram cần đúng loại tài khoản và media
Các action Instagram cho tính năng doanh nghiệp yêu cầu tài khoản Business/Creator theo flow được hỗ trợ. Ảnh cũng cần ở URL Meta tải được hoặc được đưa qua input file mà action chấp nhận. Với post ảnh, flow thường là tạo media container rồi publish; với video/Reels, thời gian xử lý lâu hơn và cần chờ trạng thái hoàn tất.
Composio không làm token hay quyền biến mất
Composio giúp mình không phải tự cầm token trong mỗi request, nhưng kết nối vẫn là quyền truy cập thật vào Facebook/Instagram. Chỉ nối tài khoản cần thiết, xem quyền đang cấp, thu hồi kết nối khi không còn dùng và giữ bước duyệt trước khi agent publish hàng loạt.
CLI hợp với agent workflow, chưa chắc là runtime sản phẩm
CLI thuận tiện khi mình làm việc trong Terminal, Codex hoặc Claude Code. Nếu đang xây một sản phẩm production phục vụ khách hàng, nên xem SDK/API và mô hình session/auth của Composio thay vì phụ thuộc vào CLI như một runtime ổn định.
Khi nào nên chọn cách này?
Composio CLI hợp khi mình muốn nhanh chóng nối agent với app mình đang dùng, cần thử workflow hoặc tự động hóa nội bộ, và không muốn tự viết phần OAuth trước khi biết workflow có đáng duy trì không.
Nếu mục tiêu là cung cấp tính năng đăng bài cho nhiều khách hàng dưới thương hiệu sản phẩm của mình, hãy xem đây là bài toán tích hợp chính thức: xác định permission tối thiểu, kiểm tra access level, chuẩn bị privacy/data handling và làm quy trình App Review khi Meta yêu cầu.
Với mình, Composio không làm Meta API hết phức tạp. Nó chuyển phần việc từ “tự dựng đường kết nối” sang “chọn đúng tài khoản, action và quyền”. Chừng đó đã giảm đáng kể phần setup ban đầu, còn việc agent đăng gì và khi nào thì vẫn nên nằm dưới quyền kiểm soát của mình.
Tài liệu tham khảo
- Composio CLI: cài đặt, đăng nhập, search, link và execute, https://docs.composio.dev/docs/cli, truy cập ngày 7/10/2026.
- Composio Connect và khác biệt giữa MCP với plugin CLI, https://docs.composio.dev/docs/composio-connect, truy cập ngày 7/10/2026.
- Hướng dẫn Composio về Facebook OAuth, https://docs.composio.dev/kb/guide/toolkits-facebook, truy cập ngày 7/10/2026.
- Hướng dẫn Composio về Instagram và loại tài khoản được hỗ trợ, https://docs.composio.dev/kb/guide/toolkits-instagram, truy cập ngày 7/10/2026.
- Meta: Access Levels, Standard Access và Advanced Access, https://developers.facebook.com/docs/graph-api/overview/access-levels/, truy cập ngày 7/10/2026.