Conversation
Query · conversation
conversation(id: ID!): ConversationView!
Lấy thông tin DM hoặc kênh theo ID để hiển thị thành viên và lựa chọn cá nhân như ghim hoặc tắt nhắc tên. Query này không trả lịch sử tin nhắn; dùng messages cho nội dung.
Gửi query qua HTTP POST /graphql với Authorization: Bearer <accessToken>. Cần đăng nhập và là thành viên của chính conversation. Chỉ thuộc workspace là chưa đủ để đọc kênh công khai chưa tham gia; GUEST vẫn đọc được conversation mà họ đã được thêm vào.
Input
| Đối số | Kiểu GraphQL | Bắt buộc | Quy tắc và ý nghĩa |
|---|---|---|---|
id | ID! | Có | UUID conversation; không có giá trị mặc định. |
Output
Trả về ConversationView!, không null.
ConversationView
| Trường | Kiểu GraphQL | Ý nghĩa |
|---|---|---|
id | ID! | ID conversation. |
workspaceId | ID! | Workspace chứa conversation. |
type | ConversationType! | DIRECT là DM hai người; CHANNEL là kênh. |
visibility | ConversationVisibility! | PRIVATE hoặc PUBLIC. DM mới là PRIVATE; kênh PUBLIC vẫn cần tham gia để đọc nội dung. |
isDefault | Boolean! | true với kênh mặc định #general; DM là false. |
title | String | Tên kênh; DM mới là null. |
description | String | Mô tả kênh hoặc null; DM mới là null. |
createdAt | DateTime! | Thời điểm tạo conversation. |
updatedAt | DateTime! | Thời điểm cập nhật conversation. |
pinnedAt | DateTime | Thời điểm người gọi ghim conversation, hoặc null. |
muted | Boolean! | Trạng thái tắt thông báo nhắc tên của người gọi. |
lastMessageSequence | Int | Mốc sequence tin nhắn gần nhất, hoặc null nếu chưa có tin nhắn. |
members | [ConversationMemberView!]! | Danh sách thành viên, không có phần tử null; xem ConversationMemberView. |
ConversationMemberView
| Trường | Kiểu GraphQL | Ý nghĩa |
|---|---|---|
userId | ID! | ID người dùng. |
username | String! | Username. |
displayName | String! | Tên hiển thị. |
avatarUrl | String | URL ảnh đại diện hoặc null. |
role | MemberRole! | Vai trò trong conversation: OWNER, ADMIN hoặc MEMBER; thành viên DM mới có MEMBER. |
lastReadSequence | Int! | Mốc sequence đã đọc của thành viên; thành viên mới bắt đầu ở 0. |
Ví dụ
query Conversation($id: ID!) {
conversation(id: $id) {
id
workspaceId
type
visibility
isDefault
title
description
createdAt
updatedAt
pinnedAt
muted
lastMessageSequence
members {
userId
username
displayName
avatarUrl
role
lastReadSequence
}
}
}
Biến:
{
"id": "33333333-3333-4333-8333-333333333333"
}
Phản hồi minh họa:
{
"data": {
"conversation": {
"id": "33333333-3333-4333-8333-333333333333",
"workspaceId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
"type": "DIRECT",
"visibility": "PRIVATE",
"isDefault": false,
"title": null,
"description": null,
"createdAt": "2026-09-26T09:00:00.000Z",
"updatedAt": "2026-09-26T09:00:00.000Z",
"pinnedAt": null,
"muted": false,
"lastMessageSequence": null,
"members": [
{
"userId": "11111111-1111-4111-8111-111111111111",
"username": "an",
"displayName": "An",
"avatarUrl": null,
"role": "MEMBER",
"lastReadSequence": 0
},
{
"userId": "22222222-2222-4222-8222-222222222222",
"username": "binh",
"displayName": "Bình",
"avatarUrl": null,
"role": "MEMBER",
"lastReadSequence": 0
}
]
}
}
}
Thiếu hoặc sai access token trả UNAUTHENTICATED. ID sai định dạng trả BAD_USER_INPUT. Người chưa tham gia conversation, kể cả khi đó là kênh công khai trong workspace của họ, nhận FORBIDDEN; ID không tồn tại cũng trả lỗi truy cập này.
Chữ ký operation được tạo từ GraphQL schema.