Cửa API cho khách
Phần mềm của bạn gọi thẳng vào myINFO: đọc bài, đọc kênh, đọc số liệu, và xếp lịch đăng. Dùng cho những việc mà mở màn hình ra bấm tay thì không xuể — máy chủ đơn hàng tự hẹn bài cho đơn mới, bảng theo dõi của công ty tự kéo số về, phần mềm nội bộ đẩy lịch sang đây thay vì nhập hai lần.
Cửa này không phải cửa của tiện ích trình duyệt. Hai tiện ích myINFO đi lối riêng, bằng thẻ riêng, và có hạn gọi riêng. Khách gọi nhiều không làm tiện ích đăng bài lỡ giờ.
Phát một khoá
Vào Quản trị → Khoá API → Thêm mới. Chỉ cần đặt tên khoá — khoá này cắm vào đâu, ví dụ Máy chủ đơn hàng hay Bản chạy thử.
Bấm Lưu là khoá hiện ra trong một hộp kèm nút Chép. Chép rồi cắm thẳng vào cấu hình bên bạn, xong bấm nút xác nhận đã lưu để đóng hộp.
🔴 Hộp ấy là lần duy nhất khoá hiện trên màn. Đóng rồi thì không ai đọc lại được nữa, kể cả bạn: hệ thống không giữ chuỗi khoá, chỉ giữ dấu của nó. Mất khoá thì thu hồi khoá cũ rồi phát khoá mới — không có cách nào xem lại.
| Điều cần biết | |
|---|---|
| Khoá chạy dưới tên bạn | Nó không bao giờ làm được nhiều hơn chính bạn làm được trên màn hình. Bạn không có quyền xem bài thì khoá của bạn cũng không. |
| Không ai đọc lại được khoá | Cả công ty nhìn thấy bảng khoá — để còn dọn khoá của người đã nghỉ — nhưng bảng chỉ bày tên khoá và tám ký tự cuối, đủ để bạn đối chiếu với chuỗi đang cắm ở máy mình. |
| Giữ bao nhiêu khoá cũng được | Nên mỗi chỗ cắm một khoá: chỗ nào có chuyện thì thu hồi đúng chỗ ấy, không ảnh hưởng nơi khác. |
| Thu hồi là ngừng ngay | Không lấy lại được. Dòng vẫn nằm trong bảng để bạn biết khoá ấy từng có và nghỉ lúc nào. |
| Cột Dùng gần nhất | Khoá im nhiều tháng thì hoặc đã bỏ, hoặc đã lọt ra ngoài mà bạn chưa biết. Cả hai đều là lý do thu hồi. |
Gọi thế nào
Khoá đi trong tiêu đề, không đi trên đường dẫn:
Authorization: Bearer info_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Đường dẫn nằm trong nhật ký máy chủ, trong lịch sử trình duyệt và trong tiêu đề Referer gửi sang trang khác. Khoá gửi kiểu ?access_token= bị chối, cố ý.
Thử khoá vừa phát:
curl -H "Authorization: Bearer <khoá của bạn>" https://<site của bạn>/api/v1/info/me
Chín cửa
| Cửa | Việc | Quyền cần có |
|---|---|---|
GET /api/v1/info/me |
Khoá này của ai, thuộc công ty nào | — |
GET /api/v1/info/posts |
Danh sách bài. Lọc thêm ?status=ready |
Xem bài viết |
GET /api/v1/info/posts/{id} |
Một bài, kèm thân bài | Xem bài viết |
POST /api/v1/info/posts |
Soạn một bài mới | Thêm bài viết |
GET /api/v1/info/channels |
Danh sách kênh | Xem nhóm kênh |
GET /api/v1/info/schedules |
Danh sách lịch đăng. Lọc thêm ?status=pending |
Xem bài viết |
POST /api/v1/info/schedules |
Xếp một lượt đăng | Thêm bài viết |
DELETE /api/v1/info/schedules/{id} |
Huỷ một lượt chưa đăng | Sửa bài viết |
GET /api/v1/info/figures |
Số liệu tóm tắt | Xem bài viết |
Cửa nào trả danh sách thì phân trang: ?page=2&per_page=50, mặc định 25, cao nhất 100. Thân trả về có khối meta kèm total và last_page.
Soạn một bài
curl -X POST https://<site của bạn>/api/v1/info/posts \
-H "Authorization: Bearer <khoá của bạn>" \
-H "Content-Type: application/json" \
-d '{"title": "Hàng mới về", "content": "Áo khoác thu đông đã lên kệ.", "status": "ready"}'
| Ô | |
|---|---|
content |
Bắt buộc, tối đa 10.000 ký tự. |
title |
Không bắt buộc, tối đa 255 ký tự. Tiêu đề chỉ để bạn nhận ra bài trong danh sách, nó không lên tường. |
status |
draft (mặc định) hoặc ready. Không nhận cảnh nào khác — xem ngay dưới đây. |
category_id |
Không bắt buộc. Phải là chuyên mục của công ty bạn, không thì cửa trả 404. |
notes |
Không bắt buộc, ghi chú nội bộ, tối đa 2.000 ký tự. |
Cửa này không đẩy gì lên tường. Nó chỉ dựng bản bài; muốn bài lên kênh thì gọi thêm POST /schedules. Tách làm hai lượt là có chủ ý: dựng nhầm một bài thì xoá đi không ai thấy, còn dựng nhầm một lượt đăng là bài lên tường thật.
Cảnh của bài không phải muốn khai gì cũng được. published là nói dối về quá khứ — không lượt nào đã chạy mà cột lại bảo đã đăng — và cảnh ấy xếp lịch được ngay, tức một lối đi vòng qua bước duyệt. pending_review là quyết định của hệ thống, không phải lời khai của bạn.
Nếu chủ khoá không có quyền duyệt bài mà bạn xin ready, bài được lưu ở cảnh Chờ duyệt và thân trả về kèm một câu nói rõ. Đó đúng là điều xảy ra khi người ấy soạn bài trên màn hình — khoá API không phải lối đi vòng.
Chưa nhận ảnh trong bản này. Cột ảnh giữ mã tệp của kho ảnh, mà mã gửi từ ngoài vào thì phải soi lại có thuộc công ty bạn không; thiếu phép soi ấy là đoán số đọc được tệp của công ty khác. Cần thì báo.
Không có phép chống gọi trùng ở cửa này, khác POST /schedules: hai lượt đăng y hệt là một bài lên tường hai lần, còn hai bản nháp y hệt thì chưa hại ai, mà bài lại không có khoá tự nhiên nào để so. Gọi lại sau một lượt hỏng thì xoá bản thừa đi.
Xếp một lượt đăng
curl -X POST https://<site của bạn>/api/v1/info/schedules \
-H "Authorization: Bearer <khoá của bạn>" \
-H "Content-Type: application/json" \
-d '{"post_id": 566, "channel_id": 1247, "scheduled_at": "2026-10-01T09:30:00+07:00"}'
| Ô | |
|---|---|
post_id |
Bài phải ở cảnh Chờ đăng hoặc Đã đăng. Bài nháp hay bài đang chờ duyệt thì cửa chối — vì làn đăng cũng sẽ giữ nó lại, và bạn sẽ nhìn một dòng đứng im qua giờ hẹn mà không biết vì sao. |
channel_id |
Kênh phải đang bật. |
scheduled_at |
Nên kèm múi giờ như ví dụ trên. Không kèm thì myINFO hiểu theo múi giờ công ty bạn, không phải múi giờ máy chủ. |
Gọi lại y hệt một lượt đã xếp thì không đẻ dòng thứ hai: bạn nhận lại đúng dòng cũ kèm một câu nói rõ. Nhờ vậy lượt gọi đứt giữa chừng cứ gọi lại là được, không sợ một bài lên tường hai lần.
Huỷ chỉ huỷ được lượt chưa đăng. Bài đã lên tường rồi thì xoá dòng lịch chỉ xoá sổ bên này chứ không gỡ bài xuống, nên cửa chối và nói thẳng.
Hạn gọi
60 lượt mỗi phút cho mỗi khoá. Quá thì nhận mã 429; chờ hết phút là gọi tiếp được. Đếm theo từng khoá chứ không theo địa chỉ máy, nên hai khoá của bạn không giành hạn của nhau.
Khi hỏng
Cửa này luôn trả JSON, kể cả lúc hỏng, kể cả khi mã của bạn không khai Accept. Câu giải thích nằm ở khoá message.
| Mã | Nghĩa |
|---|---|
401 |
Thiếu khoá, khoá sai, hoặc khoá đã thu hồi. Ba cảnh nói cùng một câu — cố ý, để không ai dò được khoá nào có thật. |
403 |
Khoá đúng nhưng chủ khoá không có quyền ấy, hoặc đã rời công ty. |
404 |
Không có bản ghi ấy trong công ty của bạn. |
422 |
Lời khai không dùng được: bài chưa duyệt, kênh đang tắt, giờ nằm trong quá khứ. |
429 |
Quá hạn gọi. |
Hai thứ cửa này KHÔNG mở
Bài đã quét nhóm. Đó là tên, đường hồ sơ và chữ của người ngoài công ty bạn — dữ liệu cá nhân theo Nghị định 13/2023. Đẩy nó ra ngoài qua một khoá tự phát là chuyển dữ liệu cá nhân cho bên thứ ba mà người bị thu thập không biết. Xem trên màn Bài đã quét.
Ảnh trong bài. Xem lý do ở mục Soạn một bài.