> ## Documentation Index
> Fetch the complete documentation index at: https://docs.madiad.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Kênh

> Toàn bộ kênh MADIAD Hub đăng được, cách kết nối từng kênh, và loại bài mỗi kênh nhận.

MADIAD Hub đăng được lên **22 kênh**. Không phải kênh nào cũng là mạng xã hội: danh sách còn có blog, chat nội bộ, fediverse, một nền tảng thương mại và một hệ gửi bản tin email. Mỗi kênh nhận một số loại bài nhất định, và kết nối theo một trong hai cách.

## Hub đăng được lên những nền tảng nào

Mười ba mạng xã hội quen thuộc: **TikTok, Instagram, YouTube, Facebook, LinkedIn, X, Threads,
Pinterest, Reddit, Bluesky, Google Business Profile, Telegram, Discord**, cộng **Slack, Mastodon,
Nostr, Lemmy, dev.to, Hashnode, WordPress, Whop** và **listmonk**.

<Warning>
  **Không loại bài nào đi tới được cả 22 kênh.** Con số 22 là số kênh Hub kết nối được, không phải
  số kênh một bài đăng chạm tới: bài chữ, ảnh và video mỗi loại tới một tập kênh khác nhau. Bảng
  ngay dưới là chỗ duy nhất nên tra. Đừng nói "đăng lên 22 kênh" cho một bài video, API sẽ từ chối
  bằng `400 invalid_request` kèm tên kênh sai.
</Warning>

## Mỗi kênh nhận loại bài nào

`platforms` được kiểm theo bảng này trước khi gửi đi bất cứ thứ gì. Đưa video cho một blog, hay bài chữ cho YouTube, sẽ nhận `400 invalid_request` có nêu tên kênh sai, chứ không đăng được một nửa rồi mới báo lỗi.

| Kênh                    | `platform`        | Chữ | Ảnh | Video | Kết nối bằng          |
| ----------------------- | ----------------- | :-: | :-: | :---: | --------------------- |
| TikTok                  | `tiktok`          |  -  |  ✅  |   ✅   | OAuth                 |
| Instagram               | `instagram`       |  -  |  ✅  |   ✅   | OAuth                 |
| YouTube                 | `youtube`         |  -  |  -  |   ✅   | OAuth                 |
| Facebook                | `facebook`        |  ✅  |  ✅  |   ✅   | OAuth                 |
| LinkedIn                | `linkedin`        |  ✅  |  ✅  |   ✅   | OAuth                 |
| X                       | `x`               |  ✅  |  ✅  |   ✅   | OAuth                 |
| Threads                 | `threads`         |  ✅  |  ✅  |   ✅   | OAuth                 |
| Pinterest               | `pinterest`       |  -  |  ✅  |   ✅   | OAuth                 |
| Reddit                  | `reddit`          |  ✅  |  ✅  |   ✅   | OAuth                 |
| Bluesky                 | `bluesky`         |  ✅  |  ✅  |   ✅   | Mật khẩu ứng dụng     |
| Google Business Profile | `google_business` |  ✅  |  ✅  |   ✅   | OAuth                 |
| Telegram                | `telegram`        |  ✅  |  ✅  |   ✅   | Bot của bạn           |
| Discord                 | `discord`         |  ✅  |  ✅  |   ✅   | Webhook kênh          |
| Slack                   | `slack`           |  ✅  |  -  |   -   | Incoming webhook      |
| Mastodon                | `mastodon`        |  ✅  |  ✅  |   ✅   | Access token          |
| Nostr                   | `nostr`           |  ✅  |  -  |   -   | Khoá riêng            |
| Lemmy                   | `lemmy`           |  ✅  |  ✅  |   -   | Tài khoản Lemmy       |
| dev.to                  | `devto`           |  ✅  |  -  |   -   | API key               |
| Hashnode                | `hashnode`        |  ✅  |  -  |   -   | Personal access token |
| WordPress               | `wordpress`       |  ✅  |  ✅  |   ✅   | Application password  |
| Whop                    | `whop`            |  ✅  |  -  |   -   | API key               |
| listmonk                | `listmonk`        |  ✅  |  -  |   -   | API user              |

<Note>
  Dùng đúng giá trị `platform` như trong bảng: `x` (không phải `twitter`), `google_business` (có gạch dưới), `devto` (không có dấu chấm).
</Note>

<Warning>
  **Threads, Reddit và Bluesky hiện chưa kết nối được** (Threads và Reddit kiểm ngày 12/09/2026,
  Bluesky ngày 13/09/2026). Các kênh này đang được nâng cấp, thử lại cũng không giúp được. Trên
  trang kết nối, ô của chúng hiện ở dạng mờ kèm ghi chú, thay vì để khách bấm vào ngõ cụt. Gọi kết
  nối cho một trong ba kênh sẽ nhận `503 platform_unavailable`. Kênh đã kết nối từ trước vẫn chạy và vẫn đăng bài bình thường, các kênh
  còn lại trong bảng không bị ảnh hưởng.
</Warning>

## Hai cách kết nối

### Kênh dùng OAuth

Phần lớn kênh được kết nối bằng cách đăng nhập trên trang kết nối: bạn gửi khách một đường dẫn, họ cấp quyền cho MADIAD Hub ngay trên màn hình của chính nền tảng đó, không có thông tin nhạy cảm nào đi qua bạn. Xem [Profile](/vi/concepts/profiles) để biết luồng tạo link kết nối.

### Kênh nhập thông tin thủ công

Slack, Mastodon, Nostr, Lemmy, dev.to, Hashnode, WordPress, Whop, listmonk, Telegram và Discord không có màn hình cấp quyền OAuth. Thay vào đó khách cung cấp một thông tin xác thực (webhook URL, API key, hoặc application password) sẽ được kiểm tra với chính nền tảng rồi lưu ở dạng mã hoá.

Kết nối bằng `POST /v1/connections/{platform}`. Request nào cũng cần `profile_id` và `name` (tuỳ chọn), kèm các trường riêng của từng kênh:

| Kênh      | Endpoint                    | Trường                                              |
| --------- | --------------------------- | --------------------------------------------------- |
| Telegram  | `/v1/connections/telegram`  | `bot_token`, `chat_id`                              |
| Discord   | `/v1/connections/discord`   | `webhook_url`                                       |
| Slack     | `/v1/connections/slack`     | `webhook_url`                                       |
| Mastodon  | `/v1/connections/mastodon`  | `instance_url`, `access_token`                      |
| Nostr     | `/v1/connections/nostr`     | `private_key` · `relays` *(tuỳ chọn)*               |
| Lemmy     | `/v1/connections/lemmy`     | `instance_url`, `username`, `password`, `community` |
| dev.to    | `/v1/connections/devto`     | `api_key`                                           |
| Hashnode  | `/v1/connections/hashnode`  | `pat`, `publication_id`                             |
| WordPress | `/v1/connections/wordpress` | `site_url`, `username`, `application_password`      |
| Whop      | `/v1/connections/whop`      | `api_key`, `experience_id`                          |
| listmonk  | `/v1/connections/listmonk`  | `instance_url`, `username`, `password`, `list_id`   |

```bash theme={null}
curl -X POST https://api.madiad.com/v1/connections/wordpress \
  -H "Authorization: Bearer $MADIAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "profile_id": "'"$PROFILE_ID"'",
    "site_url": "https://blog.congty.com",
    "username": "bientap",
    "application_password": "xxxx xxxx xxxx xxxx xxxx xxxx",
    "name": "Blog công ty"
  }'
```

Gọi thành công sẽ trả về trạng thái kết nối mới nhất của Profile. `instance_url` và `site_url` bắt buộc là URL `https://`.

Mọi trường đều bắt buộc, trừ trường được ghi là tuỳ chọn: bỏ trống thì nền tảng dùng mặc định của nó (Nostr dùng danh sách relay mặc định). Gửi chuỗi rỗng KHÔNG giống với bỏ trống.

<Warning>
  **Khoá riêng Nostr không đổi và không thu hồi được.** Khác API key hay application password, ai giữ khoá này là nắm quyền với danh tính đó vĩnh viễn. Hãy dùng một danh tính Nostr lập riêng để đăng tự động, đừng dùng khoá cá nhân của bạn.
</Warning>

<Note>
  **WordPress cần Application Password, không phải mật khẩu đăng nhập.** Tạo tại **Người dùng → Hồ sơ → Application Passwords**. Tinh thần tương tự với Lemmy và listmonk: hai kênh này có dùng mật khẩu tài khoản, nên hãy cấp một tài khoản chỉ dùng để đăng bài.
</Note>

## Chọn endpoint nào

Ba endpoint đăng bài ứng với ba cột ở bảng trên:

* [`POST /v1/posts/text`](/vi/concepts/posts): mọi kênh có ✅ ở cột **Chữ**
* [`POST /v1/posts/photos`](/vi/concepts/posts): mọi kênh có ✅ ở cột **Ảnh**
* [`POST /v1/posts/video`](/vi/concepts/posts): mọi kênh có ✅ ở cột **Video**

Một lần gọi có thể liệt kê bất kỳ nhóm kênh nào cùng nhận loại bài đó. Muốn vừa lên nền tảng video vừa lên blog thì gửi hai lần gọi. Đó là hai loại bài khác nhau, và mỗi lần tính là một lượt đăng.

## Phạm vi của Analytics

[Analytics](/vi/concepts/analytics) có số liệu cho mười kênh: TikTok, Instagram, YouTube, Facebook, LinkedIn, X, Threads, Pinterest, Reddit và Bluesky.

Google Business Profile và toàn bộ kênh nhập thủ công không trả về số người theo dõi, phạm vi tiếp cận hay tương tác. Một webhook Discord hay một danh sách email thì không có lượng người theo dõi để đọc. Hãy bỏ chúng khỏi `platforms` khi gọi Analytics.
