@warriorteam/redai-zalo-sdk 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +448 -0
- package/dist/clients/base-client.d.ts +67 -0
- package/dist/clients/base-client.d.ts.map +1 -0
- package/dist/clients/base-client.js +297 -0
- package/dist/clients/base-client.js.map +1 -0
- package/dist/clients/zalo-client.d.ts +131 -0
- package/dist/clients/zalo-client.d.ts.map +1 -0
- package/dist/clients/zalo-client.js +215 -0
- package/dist/clients/zalo-client.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/services/article.service.d.ts +144 -0
- package/dist/services/article.service.d.ts.map +1 -0
- package/dist/services/article.service.js +518 -0
- package/dist/services/article.service.js.map +1 -0
- package/dist/services/auth.service.d.ts +55 -0
- package/dist/services/auth.service.d.ts.map +1 -0
- package/dist/services/auth.service.js +269 -0
- package/dist/services/auth.service.js.map +1 -0
- package/dist/services/consultation.service.d.ts +73 -0
- package/dist/services/consultation.service.d.ts.map +1 -0
- package/dist/services/consultation.service.js +208 -0
- package/dist/services/consultation.service.js.map +1 -0
- package/dist/services/general-message.service.d.ts +85 -0
- package/dist/services/general-message.service.d.ts.map +1 -0
- package/dist/services/general-message.service.js +248 -0
- package/dist/services/general-message.service.js.map +1 -0
- package/dist/services/group-management.service.d.ts +220 -0
- package/dist/services/group-management.service.d.ts.map +1 -0
- package/dist/services/group-management.service.js +562 -0
- package/dist/services/group-management.service.js.map +1 -0
- package/dist/services/group-message.service.d.ts +102 -0
- package/dist/services/group-message.service.d.ts.map +1 -0
- package/dist/services/group-message.service.js +233 -0
- package/dist/services/group-message.service.js.map +1 -0
- package/dist/services/message-management.service.d.ts +135 -0
- package/dist/services/message-management.service.d.ts.map +1 -0
- package/dist/services/message-management.service.js +237 -0
- package/dist/services/message-management.service.js.map +1 -0
- package/dist/services/oa.service.d.ts +67 -0
- package/dist/services/oa.service.d.ts.map +1 -0
- package/dist/services/oa.service.js +223 -0
- package/dist/services/oa.service.js.map +1 -0
- package/dist/services/promotion.service.d.ts +114 -0
- package/dist/services/promotion.service.d.ts.map +1 -0
- package/dist/services/promotion.service.js +247 -0
- package/dist/services/promotion.service.js.map +1 -0
- package/dist/services/tag.service.d.ts +144 -0
- package/dist/services/tag.service.d.ts.map +1 -0
- package/dist/services/tag.service.js +184 -0
- package/dist/services/tag.service.js.map +1 -0
- package/dist/services/transaction.service.d.ts +110 -0
- package/dist/services/transaction.service.d.ts.map +1 -0
- package/dist/services/transaction.service.js +231 -0
- package/dist/services/transaction.service.js.map +1 -0
- package/dist/services/user-management.service.d.ts +117 -0
- package/dist/services/user-management.service.d.ts.map +1 -0
- package/dist/services/user-management.service.js +239 -0
- package/dist/services/user-management.service.js.map +1 -0
- package/dist/services/user.service.d.ts +84 -0
- package/dist/services/user.service.d.ts.map +1 -0
- package/dist/services/user.service.js +323 -0
- package/dist/services/user.service.js.map +1 -0
- package/dist/services/video-upload.service.d.ts +83 -0
- package/dist/services/video-upload.service.d.ts.map +1 -0
- package/dist/services/video-upload.service.js +267 -0
- package/dist/services/video-upload.service.js.map +1 -0
- package/dist/services/zns.service.d.ts +116 -0
- package/dist/services/zns.service.d.ts.map +1 -0
- package/dist/services/zns.service.js +234 -0
- package/dist/services/zns.service.js.map +1 -0
- package/dist/types/article.d.ts +352 -0
- package/dist/types/article.d.ts.map +1 -0
- package/dist/types/article.js +70 -0
- package/dist/types/article.js.map +1 -0
- package/dist/types/auth.d.ts +233 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +39 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/common.d.ts +237 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +42 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/group.d.ts +523 -0
- package/dist/types/group.d.ts.map +1 -0
- package/dist/types/group.js +6 -0
- package/dist/types/group.js.map +1 -0
- package/dist/types/message.d.ts +333 -0
- package/dist/types/message.d.ts.map +1 -0
- package/dist/types/message.js +17 -0
- package/dist/types/message.js.map +1 -0
- package/dist/types/oa.d.ts +285 -0
- package/dist/types/oa.d.ts.map +1 -0
- package/dist/types/oa.js +25 -0
- package/dist/types/oa.js.map +1 -0
- package/dist/types/social.d.ts +427 -0
- package/dist/types/social.d.ts.map +1 -0
- package/dist/types/social.js +6 -0
- package/dist/types/social.js.map +1 -0
- package/dist/types/user-management.d.ts +280 -0
- package/dist/types/user-management.d.ts.map +1 -0
- package/dist/types/user-management.js +6 -0
- package/dist/types/user-management.js.map +1 -0
- package/dist/types/user.d.ts +365 -0
- package/dist/types/user.d.ts.map +1 -0
- package/dist/types/user.js +17 -0
- package/dist/types/user.js.map +1 -0
- package/dist/types/webhook.d.ts +1972 -0
- package/dist/types/webhook.d.ts.map +1 -0
- package/dist/types/webhook.js +419 -0
- package/dist/types/webhook.js.map +1 -0
- package/dist/types/zns.d.ts +277 -0
- package/dist/types/zns.d.ts.map +1 -0
- package/dist/types/zns.js +6 -0
- package/dist/types/zns.js.map +1 -0
- package/dist/zalo-sdk.d.ts +228 -0
- package/dist/zalo-sdk.d.ts.map +1 -0
- package/dist/zalo-sdk.js +307 -0
- package/dist/zalo-sdk.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GeneralMessageService = void 0;
|
|
4
|
+
const common_1 = require("../types/common");
|
|
5
|
+
/**
|
|
6
|
+
* Service xử lý các API tin nhắn tổng quát của Zalo Official Account
|
|
7
|
+
*
|
|
8
|
+
* Bao gồm các loại tin nhắn:
|
|
9
|
+
* - Tin nhắn phản hồi (Response Message)
|
|
10
|
+
* - Tin nhắn ẩn danh (Anonymous Message)
|
|
11
|
+
* - Tin nhắn tự động (Auto Message)
|
|
12
|
+
* - Tin nhắn hệ thống (System Message)
|
|
13
|
+
*
|
|
14
|
+
* ĐIỀU KIỆN GỬI TIN NHẮN TỔNG QUÁT:
|
|
15
|
+
*
|
|
16
|
+
* 1. TIN NHẮN PHẢN HỒI:
|
|
17
|
+
* - Chỉ được gửi trong vòng 24 giờ kể từ khi người dùng gửi tin nhắn đến OA
|
|
18
|
+
* - Không giới hạn số lượng tin nhắn phản hồi
|
|
19
|
+
* - Có thể chứa bất kỳ nội dung nào (tư vấn, quảng cáo, thông tin)
|
|
20
|
+
*
|
|
21
|
+
* 2. TIN NHẮN ẨN DANH:
|
|
22
|
+
* - Gửi tin nhắn mà không hiển thị thông tin OA
|
|
23
|
+
* - Chỉ dành cho các trường hợp đặc biệt
|
|
24
|
+
* - Cần được Zalo phê duyệt trước khi sử dụng
|
|
25
|
+
*
|
|
26
|
+
* 3. TIN NHẮN TỰ ĐỘNG:
|
|
27
|
+
* - Tin nhắn được gửi tự động dựa trên trigger
|
|
28
|
+
* - Bao gồm: tin chào mừng, tin cảm ơn, tin nhắc nhở
|
|
29
|
+
*
|
|
30
|
+
* 4. TIN NHẮN HỆ THỐNG:
|
|
31
|
+
* - Tin nhắn thông báo từ hệ thống
|
|
32
|
+
* - Bao gồm: thông báo bảo trì, cập nhật chính sách
|
|
33
|
+
*/
|
|
34
|
+
class GeneralMessageService {
|
|
35
|
+
constructor(client) {
|
|
36
|
+
this.client = client;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Gửi tin nhắn phản hồi văn bản
|
|
40
|
+
* @param accessToken Access token của Official Account
|
|
41
|
+
* @param recipient Thông tin người nhận
|
|
42
|
+
* @param message Nội dung tin nhắn văn bản
|
|
43
|
+
* @returns Thông tin tin nhắn đã gửi
|
|
44
|
+
*/
|
|
45
|
+
async sendResponseTextMessage(accessToken, recipient, message) {
|
|
46
|
+
try {
|
|
47
|
+
if (!message.text || message.text.trim().length === 0) {
|
|
48
|
+
throw new common_1.ZaloSDKError("Nội dung tin nhắn không được để trống", -1);
|
|
49
|
+
}
|
|
50
|
+
if (message.text.length > 2000) {
|
|
51
|
+
throw new common_1.ZaloSDKError("Nội dung tin nhắn không được vượt quá 2000 ký tự", -1);
|
|
52
|
+
}
|
|
53
|
+
const endpoint = this.client.endpoints.message.send;
|
|
54
|
+
const request = {
|
|
55
|
+
recipient,
|
|
56
|
+
message,
|
|
57
|
+
messaging_type: "response",
|
|
58
|
+
};
|
|
59
|
+
const result = await this.client.apiPost(endpoint, accessToken, request);
|
|
60
|
+
if (result.error !== 0) {
|
|
61
|
+
throw new common_1.ZaloSDKError(result.message || "Failed to send response text message", result.error, result);
|
|
62
|
+
}
|
|
63
|
+
if (!result.data) {
|
|
64
|
+
throw new common_1.ZaloSDKError("No response data received", -1);
|
|
65
|
+
}
|
|
66
|
+
return result.data;
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
if (error instanceof common_1.ZaloSDKError) {
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
throw new common_1.ZaloSDKError(`Failed to send response text message: ${error.message}`, -1, error);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Gửi tin nhắn phản hồi hình ảnh
|
|
77
|
+
* @param accessToken Access token của Official Account
|
|
78
|
+
* @param recipient Thông tin người nhận
|
|
79
|
+
* @param message Nội dung tin nhắn hình ảnh
|
|
80
|
+
* @returns Thông tin tin nhắn đã gửi
|
|
81
|
+
*/
|
|
82
|
+
async sendResponseImageMessage(accessToken, recipient, message) {
|
|
83
|
+
try {
|
|
84
|
+
if (!message.attachment?.payload?.url) {
|
|
85
|
+
throw new common_1.ZaloSDKError("URL hình ảnh không được để trống", -1);
|
|
86
|
+
}
|
|
87
|
+
const endpoint = this.client.endpoints.message.send;
|
|
88
|
+
const request = {
|
|
89
|
+
recipient,
|
|
90
|
+
message,
|
|
91
|
+
messaging_type: "response",
|
|
92
|
+
};
|
|
93
|
+
const result = await this.client.apiPost(endpoint, accessToken, request);
|
|
94
|
+
if (result.error !== 0) {
|
|
95
|
+
throw new common_1.ZaloSDKError(result.message || "Failed to send response image message", result.error, result);
|
|
96
|
+
}
|
|
97
|
+
if (!result.data) {
|
|
98
|
+
throw new common_1.ZaloSDKError("No response data received", -1);
|
|
99
|
+
}
|
|
100
|
+
return result.data;
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
if (error instanceof common_1.ZaloSDKError) {
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
throw new common_1.ZaloSDKError(`Failed to send response image message: ${error.message}`, -1, error);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Gửi tin nhắn ẩn danh
|
|
111
|
+
* @param accessToken Access token của Official Account
|
|
112
|
+
* @param recipient Thông tin người nhận
|
|
113
|
+
* @param message Nội dung tin nhắn ẩn danh
|
|
114
|
+
* @returns Thông tin tin nhắn đã gửi
|
|
115
|
+
*/
|
|
116
|
+
async sendAnonymousMessage(accessToken, recipient, message) {
|
|
117
|
+
try {
|
|
118
|
+
if (!message.text || message.text.trim().length === 0) {
|
|
119
|
+
throw new common_1.ZaloSDKError("Nội dung tin nhắn ẩn danh không được để trống", -1);
|
|
120
|
+
}
|
|
121
|
+
const endpoint = this.client.endpoints.message.sendAnonymous;
|
|
122
|
+
const request = {
|
|
123
|
+
recipient,
|
|
124
|
+
message,
|
|
125
|
+
};
|
|
126
|
+
const result = await this.client.apiPost(endpoint, accessToken, request);
|
|
127
|
+
if (result.error !== 0) {
|
|
128
|
+
throw new common_1.ZaloSDKError(result.message || "Failed to send anonymous message", result.error, result);
|
|
129
|
+
}
|
|
130
|
+
if (!result.data) {
|
|
131
|
+
throw new common_1.ZaloSDKError("No response data received", -1);
|
|
132
|
+
}
|
|
133
|
+
return result.data;
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
if (error instanceof common_1.ZaloSDKError) {
|
|
137
|
+
throw error;
|
|
138
|
+
}
|
|
139
|
+
throw new common_1.ZaloSDKError(`Failed to send anonymous message: ${error.message}`, -1, error);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Upload file để sử dụng trong tin nhắn
|
|
144
|
+
* @param accessToken Access token của Official Account
|
|
145
|
+
* @param file File data (base64 hoặc buffer)
|
|
146
|
+
* @param fileName Tên file
|
|
147
|
+
* @returns Thông tin file đã upload
|
|
148
|
+
*/
|
|
149
|
+
async uploadFile(accessToken, file, fileName) {
|
|
150
|
+
try {
|
|
151
|
+
const endpoint = this.client.endpoints.upload.file;
|
|
152
|
+
const formData = new FormData();
|
|
153
|
+
if (typeof file === "string") {
|
|
154
|
+
// Base64 string
|
|
155
|
+
const buffer = Buffer.from(file, "base64");
|
|
156
|
+
formData.append("file", new Blob([new Uint8Array(buffer)]), fileName);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Buffer
|
|
160
|
+
formData.append("file", new Blob([new Uint8Array(file)]), fileName);
|
|
161
|
+
}
|
|
162
|
+
const result = await this.client.apiPost(endpoint, accessToken, formData);
|
|
163
|
+
if (result.error !== 0) {
|
|
164
|
+
throw new common_1.ZaloSDKError(result.message || "Failed to upload file", result.error, result);
|
|
165
|
+
}
|
|
166
|
+
if (!result.data) {
|
|
167
|
+
throw new common_1.ZaloSDKError("No response data received", -1);
|
|
168
|
+
}
|
|
169
|
+
return result.data;
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
if (error instanceof common_1.ZaloSDKError) {
|
|
173
|
+
throw error;
|
|
174
|
+
}
|
|
175
|
+
throw new common_1.ZaloSDKError(`Failed to upload file: ${error.message}`, -1, error);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Upload hình ảnh để sử dụng trong tin nhắn
|
|
180
|
+
* @param accessToken Access token của Official Account
|
|
181
|
+
* @param image Image data (base64 hoặc buffer)
|
|
182
|
+
* @param fileName Tên file hình ảnh
|
|
183
|
+
* @returns Thông tin hình ảnh đã upload
|
|
184
|
+
*/
|
|
185
|
+
async uploadImage(accessToken, image, fileName) {
|
|
186
|
+
try {
|
|
187
|
+
const endpoint = this.client.endpoints.upload.image;
|
|
188
|
+
const formData = new FormData();
|
|
189
|
+
if (typeof image === "string") {
|
|
190
|
+
// Base64 string
|
|
191
|
+
const buffer = Buffer.from(image, "base64");
|
|
192
|
+
formData.append("file", new Blob([new Uint8Array(buffer)]), fileName);
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
// Buffer
|
|
196
|
+
formData.append("file", new Blob([new Uint8Array(image)]), fileName);
|
|
197
|
+
}
|
|
198
|
+
const result = await this.client.apiPost(endpoint, accessToken, formData);
|
|
199
|
+
if (result.error !== 0) {
|
|
200
|
+
throw new common_1.ZaloSDKError(result.message || "Failed to upload image", result.error, result);
|
|
201
|
+
}
|
|
202
|
+
if (!result.data) {
|
|
203
|
+
throw new common_1.ZaloSDKError("No response data received", -1);
|
|
204
|
+
}
|
|
205
|
+
return result.data;
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
if (error instanceof common_1.ZaloSDKError) {
|
|
209
|
+
throw error;
|
|
210
|
+
}
|
|
211
|
+
throw new common_1.ZaloSDKError(`Failed to upload image: ${error.message}`, -1, error);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Gửi tin nhắn tổng quát
|
|
216
|
+
* @param accessToken Access token của Official Account
|
|
217
|
+
* @param recipient Thông tin người nhận
|
|
218
|
+
* @param message Nội dung tin nhắn
|
|
219
|
+
* @param messagingType Loại tin nhắn (response, update, message_tag)
|
|
220
|
+
* @returns Thông tin tin nhắn đã gửi
|
|
221
|
+
*/
|
|
222
|
+
async sendMessage(accessToken, recipient, message, messagingType = "response") {
|
|
223
|
+
try {
|
|
224
|
+
const endpoint = this.client.endpoints.message.send;
|
|
225
|
+
const request = {
|
|
226
|
+
recipient,
|
|
227
|
+
message,
|
|
228
|
+
messaging_type: messagingType,
|
|
229
|
+
};
|
|
230
|
+
const result = await this.client.apiPost(endpoint, accessToken, request);
|
|
231
|
+
if (result.error !== 0) {
|
|
232
|
+
throw new common_1.ZaloSDKError(result.message || "Failed to send message", result.error, result);
|
|
233
|
+
}
|
|
234
|
+
if (!result.data) {
|
|
235
|
+
throw new common_1.ZaloSDKError("No response data received", -1);
|
|
236
|
+
}
|
|
237
|
+
return result.data;
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
if (error instanceof common_1.ZaloSDKError) {
|
|
241
|
+
throw error;
|
|
242
|
+
}
|
|
243
|
+
throw new common_1.ZaloSDKError(`Failed to send message: ${error.message}`, -1, error);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
exports.GeneralMessageService = GeneralMessageService;
|
|
248
|
+
//# sourceMappingURL=general-message.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"general-message.service.js","sourceRoot":"","sources":["../../src/services/general-message.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { ZaloClient } from "../clients/zalo-client";
|
|
2
|
+
import { GroupCreateRequest, GroupCreateResult, GroupUpdateRequest, GroupAvatarUpdateRequest, GroupMemberInviteRequest, GroupAdminActionRequest, GroupQuota, GroupRecentChat, GroupConversationMessage, GroupDetailResponse, GroupPendingMembersResponse, GroupAcceptPendingMembersResponse, GroupRemoveMembersResponse, GroupMembersResponse, GroupQuotaMessageResponse } from "../types/group";
|
|
3
|
+
import { GMFProductType, QuotaType } from "../types/oa";
|
|
4
|
+
/**
|
|
5
|
+
* Service for handling Zalo Official Account Group Management Framework (GMF) APIs
|
|
6
|
+
*
|
|
7
|
+
* CONDITIONS FOR USING ZALO GMF GROUP MANAGEMENT:
|
|
8
|
+
*
|
|
9
|
+
* 1. GENERAL CONDITIONS:
|
|
10
|
+
* - OA must be granted permission to use GMF (Group Message Framework) feature
|
|
11
|
+
* - Access token must have "manage_group" and "group_message" scopes
|
|
12
|
+
* - OA must have active status and be verified
|
|
13
|
+
* - Must comply with limits on number of groups and members
|
|
14
|
+
*
|
|
15
|
+
* 2. CREATE NEW GROUP:
|
|
16
|
+
* - Group name: required, max 100 characters, no special characters
|
|
17
|
+
* - Description: optional, max 500 characters
|
|
18
|
+
* - Avatar: optional, JPG/PNG format, max 5MB
|
|
19
|
+
* - Initial members: max 200 people, must be users who have interacted with OA
|
|
20
|
+
* - OA automatically becomes admin of the group
|
|
21
|
+
*
|
|
22
|
+
* 3. MEMBER MANAGEMENT:
|
|
23
|
+
* - Only admins can invite/remove members
|
|
24
|
+
* - Invite members: max 50 people per time, users must have interacted with OA
|
|
25
|
+
* - Remove members: cannot remove other admins, must have at least 1 admin
|
|
26
|
+
* - Members can leave group themselves
|
|
27
|
+
*
|
|
28
|
+
* 4. ADMIN MANAGEMENT:
|
|
29
|
+
* - Only current admins can add/remove other admins
|
|
30
|
+
* - Must have at least 1 admin in group
|
|
31
|
+
* - OA always has admin rights and cannot be removed
|
|
32
|
+
*
|
|
33
|
+
* 5. LIMITS AND CONSTRAINTS:
|
|
34
|
+
* - Maximum groups: according to service package (usually 10-100 groups)
|
|
35
|
+
* - Maximum members per group: 200 people
|
|
36
|
+
* - Group creation frequency: max 10 groups/day
|
|
37
|
+
* - Member invitation frequency: max 500 invitations/day
|
|
38
|
+
*/
|
|
39
|
+
export declare class GroupManagementService {
|
|
40
|
+
private readonly client;
|
|
41
|
+
private readonly apiUrl;
|
|
42
|
+
constructor(client: ZaloClient);
|
|
43
|
+
/**
|
|
44
|
+
* Create new group chat with asset_id
|
|
45
|
+
* @param accessToken OA access token
|
|
46
|
+
* @param groupData Group information to create
|
|
47
|
+
* @returns Created group information
|
|
48
|
+
*/
|
|
49
|
+
createGroup(accessToken: string, groupData: GroupCreateRequest): Promise<GroupCreateResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Get detailed group information
|
|
52
|
+
* @param accessToken OA access token
|
|
53
|
+
* @param groupId Group ID
|
|
54
|
+
* @returns Detailed group information including group_info, asset_info and group_setting
|
|
55
|
+
*/
|
|
56
|
+
getGroupInfo(accessToken: string, groupId: string): Promise<GroupDetailResponse["data"]>;
|
|
57
|
+
/**
|
|
58
|
+
* Update group information
|
|
59
|
+
* @param accessToken OA access token
|
|
60
|
+
* @param groupId Group ID
|
|
61
|
+
* @param updateData Information to update
|
|
62
|
+
* @returns Update result
|
|
63
|
+
*/
|
|
64
|
+
updateGroupInfo(accessToken: string, groupId: string, updateData: GroupUpdateRequest): Promise<{
|
|
65
|
+
success: boolean;
|
|
66
|
+
}>;
|
|
67
|
+
/**
|
|
68
|
+
* Update group avatar
|
|
69
|
+
* @param accessToken OA access token
|
|
70
|
+
* @param groupId Group ID
|
|
71
|
+
* @param avatarData New avatar information
|
|
72
|
+
* @returns Update result
|
|
73
|
+
*/
|
|
74
|
+
updateGroupAvatar(accessToken: string, groupId: string, avatarData: GroupAvatarUpdateRequest): Promise<{
|
|
75
|
+
success: boolean;
|
|
76
|
+
}>;
|
|
77
|
+
/**
|
|
78
|
+
* Invite members to group
|
|
79
|
+
* @param accessToken OA access token
|
|
80
|
+
* @param groupId Group ID
|
|
81
|
+
* @param inviteData List of user IDs to invite
|
|
82
|
+
* @returns Invitation result
|
|
83
|
+
*/
|
|
84
|
+
inviteMembers(accessToken: string, groupId: string, inviteData: GroupMemberInviteRequest): Promise<{
|
|
85
|
+
success: boolean;
|
|
86
|
+
invited_count: number;
|
|
87
|
+
}>;
|
|
88
|
+
/**
|
|
89
|
+
* Get list of pending members
|
|
90
|
+
* @param accessToken OA access token
|
|
91
|
+
* @param groupId Group ID
|
|
92
|
+
* @param offset Offset for pagination (default: 0)
|
|
93
|
+
* @param count Maximum number to return (default: 20, max: 50)
|
|
94
|
+
* @returns List of pending members
|
|
95
|
+
*/
|
|
96
|
+
getPendingMembers(accessToken: string, groupId: string, offset?: number, count?: number): Promise<GroupPendingMembersResponse>;
|
|
97
|
+
/**
|
|
98
|
+
* Accept pending members to group
|
|
99
|
+
* @param accessToken OA access token
|
|
100
|
+
* @param groupId Group ID
|
|
101
|
+
* @param memberUserIds List of user IDs to accept
|
|
102
|
+
* @returns Accept result
|
|
103
|
+
*/
|
|
104
|
+
acceptPendingMembers(accessToken: string, groupId: string, memberUserIds: string[]): Promise<GroupAcceptPendingMembersResponse>;
|
|
105
|
+
/**
|
|
106
|
+
* Reject pending members from group
|
|
107
|
+
* @param accessToken OA access token
|
|
108
|
+
* @param groupId Group ID
|
|
109
|
+
* @param memberUserIds List of user IDs to reject
|
|
110
|
+
* @returns Reject result
|
|
111
|
+
*/
|
|
112
|
+
rejectPendingMembers(accessToken: string, groupId: string, memberUserIds: string[]): Promise<GroupAcceptPendingMembersResponse>;
|
|
113
|
+
/**
|
|
114
|
+
* Remove members from group
|
|
115
|
+
* @param accessToken OA access token
|
|
116
|
+
* @param groupId Group ID
|
|
117
|
+
* @param memberUserIds List of user IDs to remove
|
|
118
|
+
* @returns Remove result
|
|
119
|
+
*/
|
|
120
|
+
removeMembers(accessToken: string, groupId: string, memberUserIds: string[]): Promise<GroupRemoveMembersResponse>;
|
|
121
|
+
/**
|
|
122
|
+
* Add admin rights to members
|
|
123
|
+
* @param accessToken OA access token
|
|
124
|
+
* @param groupId Group ID
|
|
125
|
+
* @param adminData List of user IDs to add admin rights
|
|
126
|
+
* @returns Add admin result
|
|
127
|
+
*/
|
|
128
|
+
addAdmins(accessToken: string, groupId: string, adminData: GroupAdminActionRequest): Promise<{
|
|
129
|
+
error: number;
|
|
130
|
+
message: string;
|
|
131
|
+
}>;
|
|
132
|
+
/**
|
|
133
|
+
* Remove admin rights from members
|
|
134
|
+
* @param accessToken OA access token
|
|
135
|
+
* @param groupId Group ID
|
|
136
|
+
* @param adminData List of user IDs to remove admin rights
|
|
137
|
+
* @returns Remove admin result
|
|
138
|
+
*/
|
|
139
|
+
removeAdmins(accessToken: string, groupId: string, adminData: GroupAdminActionRequest): Promise<{
|
|
140
|
+
error: number;
|
|
141
|
+
message: string;
|
|
142
|
+
}>;
|
|
143
|
+
/**
|
|
144
|
+
* Delete group chat (Disband group)
|
|
145
|
+
* @param accessToken OA access token
|
|
146
|
+
* @param groupId Group ID to delete
|
|
147
|
+
* @returns Delete result
|
|
148
|
+
*/
|
|
149
|
+
deleteGroup(accessToken: string, groupId: string): Promise<{
|
|
150
|
+
error: number;
|
|
151
|
+
message: string;
|
|
152
|
+
}>;
|
|
153
|
+
/**
|
|
154
|
+
* Get list of OA groups
|
|
155
|
+
* @param accessToken OA access token
|
|
156
|
+
* @param offset Offset for pagination (default: 0)
|
|
157
|
+
* @param count Maximum number to return (default: 20, max: 50)
|
|
158
|
+
* @returns List of OA groups
|
|
159
|
+
*/
|
|
160
|
+
getGroupsOfOA(accessToken: string, offset?: number, count?: number): Promise<{
|
|
161
|
+
groups: any[];
|
|
162
|
+
total: number;
|
|
163
|
+
}>;
|
|
164
|
+
/**
|
|
165
|
+
* Get group quota information and asset_id
|
|
166
|
+
* @param accessToken OA access token
|
|
167
|
+
* @param productType Product type (optional)
|
|
168
|
+
* @param quotaType Quota type (optional)
|
|
169
|
+
* @returns Group quota information including asset_id
|
|
170
|
+
*/
|
|
171
|
+
getGroupQuota(accessToken: string, productType?: GMFProductType, quotaType?: QuotaType): Promise<GroupQuota>;
|
|
172
|
+
/**
|
|
173
|
+
* Get asset_id for creating GMF group
|
|
174
|
+
* @param accessToken OA access token
|
|
175
|
+
* @returns Asset_id for group creation
|
|
176
|
+
*/
|
|
177
|
+
getAssetId(accessToken: string): Promise<string>;
|
|
178
|
+
/**
|
|
179
|
+
* Get list of asset_ids available for creating GMF groups
|
|
180
|
+
* @param accessToken OA access token
|
|
181
|
+
* @returns List of asset_ids and quota information
|
|
182
|
+
*/
|
|
183
|
+
getAssetIds(accessToken: string): Promise<GroupQuotaMessageResponse>;
|
|
184
|
+
/**
|
|
185
|
+
* Get list of recent chats
|
|
186
|
+
* @param accessToken OA access token
|
|
187
|
+
* @param offset Offset for pagination (default: 0)
|
|
188
|
+
* @param count Maximum number to return (default: 20, max: 50)
|
|
189
|
+
* @returns List of recent chats
|
|
190
|
+
*/
|
|
191
|
+
getRecentChats(accessToken: string, offset?: number, count?: number): Promise<{
|
|
192
|
+
chats: GroupRecentChat[];
|
|
193
|
+
total: number;
|
|
194
|
+
}>;
|
|
195
|
+
/**
|
|
196
|
+
* Get group conversation history
|
|
197
|
+
* @param accessToken OA access token
|
|
198
|
+
* @param groupId Group ID
|
|
199
|
+
* @param offset Offset for pagination (default: 0)
|
|
200
|
+
* @param count Maximum number of messages to return (default: 20, max: 100)
|
|
201
|
+
* @param fromTime Start time (Unix timestamp, optional)
|
|
202
|
+
* @param toTime End time (Unix timestamp, optional)
|
|
203
|
+
* @returns Group conversation history
|
|
204
|
+
*/
|
|
205
|
+
getGroupConversation(accessToken: string, groupId: string, offset?: number, count?: number, fromTime?: number, toTime?: number): Promise<{
|
|
206
|
+
messages: GroupConversationMessage[];
|
|
207
|
+
total: number;
|
|
208
|
+
}>;
|
|
209
|
+
/**
|
|
210
|
+
* Get group members list from Zalo API
|
|
211
|
+
* @param accessToken OA access token
|
|
212
|
+
* @param groupId Group ID
|
|
213
|
+
* @param offset Offset for pagination (default: 0)
|
|
214
|
+
* @param count Maximum number to return (default: 5, max: 50)
|
|
215
|
+
* @returns Group members list
|
|
216
|
+
*/
|
|
217
|
+
getGroupMembers(accessToken: string, groupId: string, offset?: number, count?: number): Promise<GroupMembersResponse>;
|
|
218
|
+
private handleGroupManagementError;
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=group-management.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-management.service.d.ts","sourceRoot":"","sources":["../../src/services/group-management.service.ts"],"names":[],"mappings":"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"}
|