@warriorteam/redai-zalo-sdk 1.3.0 → 1.4.1
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/README.md +565 -550
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/services/article.service.d.ts +1 -1
- package/dist/services/article.service.d.ts.map +1 -1
- package/dist/services/article.service.js +24 -16
- package/dist/services/article.service.js.map +1 -1
- package/dist/services/auth.service.d.ts +1 -0
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +23 -9
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/consultation.service.d.ts +63 -16
- package/dist/services/consultation.service.d.ts.map +1 -1
- package/dist/services/consultation.service.js +264 -49
- package/dist/services/consultation.service.js.map +1 -1
- package/dist/services/general-message.service.d.ts +2 -25
- package/dist/services/general-message.service.d.ts.map +1 -1
- package/dist/services/general-message.service.js +11 -112
- package/dist/services/general-message.service.js.map +1 -1
- package/dist/services/group-management.service.d.ts +1 -1
- package/dist/services/group-management.service.d.ts.map +1 -1
- package/dist/services/group-management.service.js +59 -27
- package/dist/services/group-management.service.js.map +1 -1
- package/dist/services/group-message.service.d.ts +1 -1
- package/dist/services/group-message.service.d.ts.map +1 -1
- package/dist/services/group-message.service.js +49 -23
- package/dist/services/group-message.service.js.map +1 -1
- package/dist/services/message-management.service.d.ts +21 -2
- package/dist/services/message-management.service.d.ts.map +1 -1
- package/dist/services/message-management.service.js +83 -7
- package/dist/services/message-management.service.js.map +1 -1
- package/dist/services/oa.service.d.ts +1 -0
- package/dist/services/oa.service.d.ts.map +1 -1
- package/dist/services/oa.service.js +23 -5
- package/dist/services/oa.service.js.map +1 -1
- package/dist/services/user.service.d.ts +108 -18
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +260 -59
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/video-upload.service.d.ts +1 -1
- package/dist/services/video-upload.service.d.ts.map +1 -1
- package/dist/services/video-upload.service.js +11 -8
- package/dist/services/video-upload.service.js.map +1 -1
- package/dist/services/zns.service.d.ts +88 -21
- package/dist/services/zns.service.d.ts.map +1 -1
- package/dist/services/zns.service.js +157 -42
- package/dist/services/zns.service.js.map +1 -1
- package/dist/types/group.d.ts +5 -5
- package/dist/types/group.d.ts.map +1 -1
- package/dist/types/user.d.ts +155 -12
- package/dist/types/user.d.ts.map +1 -1
- package/dist/types/user.js.map +1 -1
- package/dist/types/webhook.d.ts +8 -0
- package/dist/types/webhook.d.ts.map +1 -1
- package/dist/types/webhook.js.map +1 -1
- package/dist/types/zns.d.ts +67 -33
- package/dist/types/zns.d.ts.map +1 -1
- package/dist/zalo-sdk.d.ts +3 -11
- package/dist/zalo-sdk.d.ts.map +1 -1
- package/dist/zalo-sdk.js +0 -10
- package/dist/zalo-sdk.js.map +1 -1
- package/docs/CONSULTATION_SERVICE.md +512 -330
- package/docs/GROUP_MANAGEMENT.md +2 -2
- package/docs/USER_MANAGEMENT.md +481 -1248
- package/docs/WEBHOOK_EVENTS.md +55 -3
- package/package.json +1 -1
- package/dist/services/tag.service.d.ts +0 -144
- package/dist/services/tag.service.d.ts.map +0 -1
- package/dist/services/tag.service.js +0 -184
- package/dist/services/tag.service.js.map +0 -1
- package/dist/services/user-management.service.d.ts +0 -117
- package/dist/services/user-management.service.d.ts.map +0 -1
- package/dist/services/user-management.service.js +0 -239
- package/dist/services/user-management.service.js.map +0 -1
|
@@ -29,12 +29,31 @@ const common_1 = require("../types/common");
|
|
|
29
29
|
* 4. UPLOAD HÌNH ẢNH:
|
|
30
30
|
* - Kích thước tối đa 5MB
|
|
31
31
|
* - Hỗ trợ các định dạng: JPG, PNG, GIF
|
|
32
|
+
*
|
|
33
|
+
* 5. UPLOAD ẢNH GIF:
|
|
34
|
+
* - Kích thước tối đa 5MB
|
|
35
|
+
* - Chỉ hỗ trợ định dạng GIF
|
|
36
|
+
* - Ảnh GIF được lưu trên server tối đa 7 ngày
|
|
37
|
+
* - Quota: 5000 request/tháng
|
|
32
38
|
*/
|
|
33
39
|
class MessageManagementService {
|
|
34
40
|
constructor(client) {
|
|
35
41
|
this.client = client;
|
|
36
|
-
|
|
37
|
-
this.
|
|
42
|
+
// Zalo API endpoints - organized by functionality
|
|
43
|
+
this.endpoints = {
|
|
44
|
+
// Message management endpoints
|
|
45
|
+
message: {
|
|
46
|
+
quota: "https://openapi.zalo.me/v2.0/oa/quota",
|
|
47
|
+
conversation: "https://openapi.zalo.me/v2.0/oa/conversation",
|
|
48
|
+
recentConversations: "https://openapi.zalo.me/v2.0/oa/listrecentchat",
|
|
49
|
+
},
|
|
50
|
+
// Upload endpoints
|
|
51
|
+
upload: {
|
|
52
|
+
file: "https://openapi.zalo.me/v2.0/oa/upload/file",
|
|
53
|
+
image: "https://openapi.zalo.me/v2.0/oa/upload/image",
|
|
54
|
+
gif: "https://openapi.zalo.me/v2.0/oa/upload/gif",
|
|
55
|
+
},
|
|
56
|
+
};
|
|
38
57
|
}
|
|
39
58
|
/**
|
|
40
59
|
* Kiểm tra hạn mức gửi tin nhắn đến user cụ thể
|
|
@@ -44,7 +63,7 @@ class MessageManagementService {
|
|
|
44
63
|
*/
|
|
45
64
|
async checkMessageQuota(accessToken, userId) {
|
|
46
65
|
try {
|
|
47
|
-
const result = await this.client.apiGet(
|
|
66
|
+
const result = await this.client.apiGet(this.endpoints.message.quota, accessToken, { user_id: userId });
|
|
48
67
|
if (result.error !== 0) {
|
|
49
68
|
throw new common_1.ZaloSDKError(result.message || "Failed to check message quota", result.error, result);
|
|
50
69
|
}
|
|
@@ -73,7 +92,7 @@ class MessageManagementService {
|
|
|
73
92
|
if (count > 50) {
|
|
74
93
|
throw new common_1.ZaloSDKError("Số lượng tin nhắn tối đa là 50", -1);
|
|
75
94
|
}
|
|
76
|
-
const result = await this.client.apiGet(
|
|
95
|
+
const result = await this.client.apiGet(this.endpoints.message.conversation, accessToken, {
|
|
77
96
|
user_id: userId,
|
|
78
97
|
offset,
|
|
79
98
|
count,
|
|
@@ -112,7 +131,7 @@ class MessageManagementService {
|
|
|
112
131
|
if (count > 50) {
|
|
113
132
|
throw new common_1.ZaloSDKError("Số lượng cuộc hội thoại tối đa là 50", -1);
|
|
114
133
|
}
|
|
115
|
-
const result = await this.client.apiGet(
|
|
134
|
+
const result = await this.client.apiGet(this.endpoints.message.recentConversations, accessToken, {
|
|
116
135
|
offset,
|
|
117
136
|
count,
|
|
118
137
|
});
|
|
@@ -169,7 +188,7 @@ class MessageManagementService {
|
|
|
169
188
|
else {
|
|
170
189
|
formData.append("file", new Blob([new Uint8Array(fileData)]), fileName);
|
|
171
190
|
}
|
|
172
|
-
const result = await this.client.apiPost(
|
|
191
|
+
const result = await this.client.apiPost(this.endpoints.upload.file, accessToken, formData);
|
|
173
192
|
if (result.error !== 0) {
|
|
174
193
|
throw new common_1.ZaloSDKError(result.message || "Failed to upload file", result.error, result);
|
|
175
194
|
}
|
|
@@ -216,7 +235,7 @@ class MessageManagementService {
|
|
|
216
235
|
else {
|
|
217
236
|
formData.append("file", new Blob([new Uint8Array(imageData)]), fileName);
|
|
218
237
|
}
|
|
219
|
-
const result = await this.client.apiPost(
|
|
238
|
+
const result = await this.client.apiPost(this.endpoints.upload.image, accessToken, formData);
|
|
220
239
|
if (result.error !== 0) {
|
|
221
240
|
throw new common_1.ZaloSDKError(result.message || "Failed to upload image", result.error, result);
|
|
222
241
|
}
|
|
@@ -232,6 +251,63 @@ class MessageManagementService {
|
|
|
232
251
|
throw new common_1.ZaloSDKError(`Failed to upload image: ${error.message}`, -1, error);
|
|
233
252
|
}
|
|
234
253
|
}
|
|
254
|
+
/**
|
|
255
|
+
* Upload ảnh GIF để sử dụng trong tin nhắn
|
|
256
|
+
* @param accessToken Access token của Official Account
|
|
257
|
+
* @param gifData Dữ liệu ảnh GIF (base64 hoặc buffer)
|
|
258
|
+
* @param fileName Tên file ảnh GIF
|
|
259
|
+
* @returns Thông tin ảnh GIF đã upload
|
|
260
|
+
*
|
|
261
|
+
* Lưu ý:
|
|
262
|
+
* - Dung lượng tối đa: 5MB
|
|
263
|
+
* - Ảnh GIF sẽ được lưu trên server tối đa 7 ngày
|
|
264
|
+
* - Quota: 5000 request/tháng
|
|
265
|
+
* - Định dạng hỗ trợ: GIF
|
|
266
|
+
*/
|
|
267
|
+
async uploadGif(accessToken, gifData, fileName) {
|
|
268
|
+
try {
|
|
269
|
+
// Validate GIF size (max 5MB)
|
|
270
|
+
const maxSize = 5 * 1024 * 1024; // 5MB
|
|
271
|
+
let gifSize;
|
|
272
|
+
if (typeof gifData === "string") {
|
|
273
|
+
// Base64 string
|
|
274
|
+
gifSize = Buffer.from(gifData, "base64").length;
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
// Buffer
|
|
278
|
+
gifSize = gifData.length;
|
|
279
|
+
}
|
|
280
|
+
if (gifSize > maxSize) {
|
|
281
|
+
throw new common_1.ZaloSDKError("Kích thước ảnh GIF không được vượt quá 5MB", -1);
|
|
282
|
+
}
|
|
283
|
+
// Validate file extension
|
|
284
|
+
if (!fileName.toLowerCase().endsWith(".gif")) {
|
|
285
|
+
throw new common_1.ZaloSDKError("File phải có định dạng GIF", -1);
|
|
286
|
+
}
|
|
287
|
+
const formData = new FormData();
|
|
288
|
+
if (typeof gifData === "string") {
|
|
289
|
+
const buffer = Buffer.from(gifData, "base64");
|
|
290
|
+
formData.append("file", new Blob([new Uint8Array(buffer)]), fileName);
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
formData.append("file", new Blob([new Uint8Array(gifData)]), fileName);
|
|
294
|
+
}
|
|
295
|
+
const result = await this.client.apiPost(this.endpoints.upload.gif, accessToken, formData);
|
|
296
|
+
if (result.error !== 0) {
|
|
297
|
+
throw new common_1.ZaloSDKError(result.message || "Failed to upload GIF", result.error, result);
|
|
298
|
+
}
|
|
299
|
+
if (!result.data) {
|
|
300
|
+
throw new common_1.ZaloSDKError("No upload result received", -1);
|
|
301
|
+
}
|
|
302
|
+
return result.data;
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
if (error instanceof common_1.ZaloSDKError) {
|
|
306
|
+
throw error;
|
|
307
|
+
}
|
|
308
|
+
throw new common_1.ZaloSDKError(`Failed to upload GIF: ${error.message}`, -1, error);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
235
311
|
}
|
|
236
312
|
exports.MessageManagementService = MessageManagementService;
|
|
237
313
|
//# sourceMappingURL=message-management.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-management.service.js","sourceRoot":"","sources":["../../src/services/message-management.service.ts"],"names":[],"mappings":";;;AACA,4CAA6D;AA4D7D
|
|
1
|
+
{"version":3,"file":"message-management.service.js","sourceRoot":"","sources":["../../src/services/message-management.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oa.service.d.ts","sourceRoot":"","sources":["../../src/services/oa.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACL,MAAM,EACN,YAAY,EACZ,mBAAmB,EAEnB,UAAU,EAEV,YAAY,EACZ,sBAAsB,EAEtB,cAAc,EAEf,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,qBAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"oa.service.d.ts","sourceRoot":"","sources":["../../src/services/oa.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACL,MAAM,EACN,YAAY,EACZ,mBAAmB,EAEnB,UAAU,EAEV,YAAY,EACZ,sBAAsB,EAEtB,cAAc,EAEf,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,qBAAa,SAAS;IAoBR,OAAO,CAAC,QAAQ,CAAC,MAAM;IAlBnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAgBxB;gBAE2B,MAAM,EAAE,UAAU;IAE/C;;OAEG;IACU,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B5D;;OAEG;IACU,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA0BxE;;OAEG;IACU,uBAAuB,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,UAAU,EAAE,CAAC;IAsBxB;;OAEG;IACU,qBAAqB,CAChC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,IAAI,GAAG,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,EAChE,SAAS,CAAC,EAAE,WAAW,GAAG,gBAAgB,GAAG,cAAc,GAC1D,OAAO,CAAC,UAAU,EAAE,CAAC;IAUxB;;OAEG;IACU,WAAW,CACtB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,cAAqC,GAC7C,OAAO,CAAC,UAAU,EAAE,CAAC;IAIxB;;OAEG;IACU,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAI7E;;OAEG;IACU,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAI5E;;OAEG;IACU,eAAe,CAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,sBAAsB,GAClC,OAAO,CAAC,OAAO,CAAC;IAwBnB;;OAEG;IACU,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA6BxE;;OAEG;IACU,sBAAsB,CACjC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,IAAI,GAAG,aAAa,GAAG,WAAW,EAC/C,aAAa,GAAE,MAAU,GACxB,OAAO,CAAC,OAAO,CAAC;IA4BnB;;OAEG;IACU,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QACzD,YAAY,EAAE,UAAU,EAAE,CAAC;QAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;QAC1B,KAAK,EAAE,UAAU,EAAE,CAAC;QACpB,KAAK,EAAE,UAAU,EAAE,CAAC;QACpB,MAAM,EAAE,UAAU,EAAE,CAAC;KACtB,CAAC;IAyBF;;OAEG;IACU,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAQpE"}
|
|
@@ -12,13 +12,31 @@ const common_1 = require("../types/common");
|
|
|
12
12
|
class OAService {
|
|
13
13
|
constructor(client) {
|
|
14
14
|
this.client = client;
|
|
15
|
+
// Zalo API endpoints - organized by functionality
|
|
16
|
+
this.endpoints = {
|
|
17
|
+
// OA information
|
|
18
|
+
info: "https://openapi.zalo.me/v2.0/oa/getoa",
|
|
19
|
+
// Quota endpoints
|
|
20
|
+
quota: {
|
|
21
|
+
overview: "https://openapi.zalo.me/v2.0/oa/quota",
|
|
22
|
+
message: "https://openapi.zalo.me/v3.0/oa/quota/message",
|
|
23
|
+
},
|
|
24
|
+
// Profile management
|
|
25
|
+
profile: {
|
|
26
|
+
update: "https://openapi.zalo.me/v2.0/oa/update",
|
|
27
|
+
},
|
|
28
|
+
// Statistics
|
|
29
|
+
statistics: {
|
|
30
|
+
overview: "https://openapi.zalo.me/v2.0/oa/statistics",
|
|
31
|
+
},
|
|
32
|
+
};
|
|
15
33
|
}
|
|
16
34
|
/**
|
|
17
35
|
* Get Official Account information
|
|
18
36
|
*/
|
|
19
37
|
async getOAInfo(accessToken) {
|
|
20
38
|
try {
|
|
21
|
-
const endpoint = this.
|
|
39
|
+
const endpoint = this.endpoints.info;
|
|
22
40
|
const result = await this.client.apiGet(endpoint, accessToken);
|
|
23
41
|
if (result.error !== 0) {
|
|
24
42
|
throw new common_1.ZaloSDKError(result.message || 'Failed to get OA information', result.error, result);
|
|
@@ -40,7 +58,7 @@ class OAService {
|
|
|
40
58
|
*/
|
|
41
59
|
async getMessageQuota(accessToken) {
|
|
42
60
|
try {
|
|
43
|
-
const endpoint = this.
|
|
61
|
+
const endpoint = this.endpoints.quota.overview;
|
|
44
62
|
const result = await this.client.apiGet(endpoint, accessToken);
|
|
45
63
|
if (result.error !== 0) {
|
|
46
64
|
throw new common_1.ZaloSDKError(result.message || 'Failed to get message quota', result.error, result);
|
|
@@ -62,7 +80,7 @@ class OAService {
|
|
|
62
80
|
*/
|
|
63
81
|
async getDetailedQuotaMessage(accessToken, request) {
|
|
64
82
|
try {
|
|
65
|
-
const endpoint = this.
|
|
83
|
+
const endpoint = this.endpoints.quota.message;
|
|
66
84
|
const result = await this.client.apiPost(endpoint, accessToken, request);
|
|
67
85
|
if (result.error !== 0) {
|
|
68
86
|
throw new common_1.ZaloSDKError(result.message || 'Failed to get detailed quota message', result.error, result);
|
|
@@ -112,7 +130,7 @@ class OAService {
|
|
|
112
130
|
try {
|
|
113
131
|
// Note: This endpoint might not be available in all Zalo API versions
|
|
114
132
|
// This is a placeholder implementation
|
|
115
|
-
const endpoint =
|
|
133
|
+
const endpoint = this.endpoints.profile.update;
|
|
116
134
|
const result = await this.client.apiPost(endpoint, accessToken, profileData);
|
|
117
135
|
if (result.error !== 0) {
|
|
118
136
|
throw new common_1.ZaloSDKError(result.message || 'Failed to update OA profile', result.error, result);
|
|
@@ -133,7 +151,7 @@ class OAService {
|
|
|
133
151
|
try {
|
|
134
152
|
// Note: This endpoint might not be available in all Zalo API versions
|
|
135
153
|
// This is a placeholder implementation
|
|
136
|
-
const endpoint =
|
|
154
|
+
const endpoint = this.endpoints.statistics.overview;
|
|
137
155
|
const result = await this.client.apiGet(endpoint, accessToken);
|
|
138
156
|
if (result.error !== 0) {
|
|
139
157
|
throw new common_1.ZaloSDKError(result.message || 'Failed to get OA statistics', result.error, result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oa.service.js","sourceRoot":"","sources":["../../src/services/oa.service.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,oCAYqB;AACrB,4CAA6D;AAE7D;;GAEG;AACH,MAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"oa.service.js","sourceRoot":"","sources":["../../src/services/oa.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,44 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* User management service for Zalo API
|
|
3
|
+
* Handles all user-related operations with specific endpoints
|
|
3
4
|
*/
|
|
4
5
|
import { ZaloClient } from "../clients/zalo-client";
|
|
5
|
-
import { UserInfo, UserListRequest, UserListResponse,
|
|
6
|
+
import { UserInfo, UserListRequest, UserListResponse, TagUserRequest, RemoveTagFromUserRequest, UpdateUserRequest, GetUserCustomInfoRequest, UserCustomInfoResponse, UpdateUserCustomInfoRequest } from "../types/user";
|
|
6
7
|
/**
|
|
7
8
|
* User management service for handling user operations
|
|
9
|
+
* Each method uses specific Zalo API endpoints
|
|
8
10
|
*/
|
|
9
11
|
export declare class UserService {
|
|
10
12
|
private readonly client;
|
|
13
|
+
private readonly endpoints;
|
|
11
14
|
constructor(client: ZaloClient);
|
|
12
15
|
/**
|
|
13
|
-
*
|
|
16
|
+
* Truy xuất chi tiết người dùng
|
|
17
|
+
* Endpoint: https://openapi.zalo.me/v3.0/oa/user/detail
|
|
18
|
+
* Method: GET with data parameter as JSON string
|
|
19
|
+
*
|
|
20
|
+
* @param accessToken OA access token
|
|
21
|
+
* @param userId User ID to get details for
|
|
22
|
+
* @returns Promise<UserInfo> - Detailed user information
|
|
14
23
|
*/
|
|
15
24
|
getUserInfo(accessToken: string, userId: string): Promise<UserInfo>;
|
|
16
25
|
/**
|
|
17
|
-
*
|
|
26
|
+
* Truy xuất danh sách người dùng
|
|
27
|
+
* Endpoint: https://openapi.zalo.me/v3.0/oa/user/getlist
|
|
28
|
+
* Method: GET with data parameter as JSON string
|
|
29
|
+
*
|
|
30
|
+
* @param accessToken OA access token
|
|
31
|
+
* @param request User list request parameters
|
|
32
|
+
* @returns Promise<UserListResponse> - List of users with pagination info
|
|
18
33
|
*/
|
|
19
34
|
getUserList(accessToken: string, request: UserListRequest): Promise<UserListResponse>;
|
|
20
35
|
/**
|
|
21
36
|
* Get all users with automatic pagination
|
|
37
|
+
* Lấy tất cả users với phân trang tự động, đảm bảo lấy 100%
|
|
38
|
+
*
|
|
39
|
+
* @param accessToken Access token của OA
|
|
40
|
+
* @param filters Bộ lọc tùy chọn
|
|
41
|
+
* @returns Promise<UserInfo[]> - Danh sách đầy đủ tất cả users
|
|
22
42
|
*/
|
|
23
43
|
getAllUsers(accessToken: string, filters?: {
|
|
24
44
|
tag_name?: string;
|
|
@@ -26,33 +46,103 @@ export declare class UserService {
|
|
|
26
46
|
is_follower?: boolean;
|
|
27
47
|
}): Promise<UserInfo[]>;
|
|
28
48
|
/**
|
|
29
|
-
*
|
|
49
|
+
* Get all user IDs only (without detailed info) - Faster version
|
|
50
|
+
* Chỉ lấy danh sách user ID, không lấy thông tin chi tiết - Nhanh hơn
|
|
51
|
+
*
|
|
52
|
+
* @param accessToken Access token của OA
|
|
53
|
+
* @param filters Bộ lọc tùy chọn
|
|
54
|
+
* @returns Promise<string[]> - Danh sách user IDs
|
|
55
|
+
*/
|
|
56
|
+
getAllUserIds(accessToken: string, filters?: {
|
|
57
|
+
tag_name?: string;
|
|
58
|
+
last_interaction_period?: string;
|
|
59
|
+
is_follower?: boolean;
|
|
60
|
+
}): Promise<string[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Cập nhật chi tiết người dùng
|
|
63
|
+
* Endpoint: https://openapi.zalo.me/v3.0/oa/user/update
|
|
64
|
+
* Method: POST
|
|
65
|
+
*
|
|
66
|
+
* @param accessToken OA access token
|
|
67
|
+
* @param request Update user request with user_id and optional fields
|
|
68
|
+
* @returns Promise<boolean> - true if successful
|
|
30
69
|
*/
|
|
31
70
|
updateUser(accessToken: string, request: UpdateUserRequest): Promise<boolean>;
|
|
32
71
|
/**
|
|
33
|
-
*
|
|
72
|
+
* Xóa thông tin người dùng
|
|
73
|
+
* Endpoint: https://openapi.zalo.me/v2.0/oa/deletefollowerinfo
|
|
74
|
+
* Method: POST
|
|
75
|
+
*
|
|
76
|
+
* @param accessToken OA access token
|
|
77
|
+
* @param userId User ID to delete info for
|
|
78
|
+
* @returns Promise<boolean> - true if successful
|
|
79
|
+
*
|
|
80
|
+
* Note: Chỉ xóa thông tin lưu trữ ở phía OA, không thay đổi tài khoản Zalo
|
|
81
|
+
*/
|
|
82
|
+
deleteUserInfo(accessToken: string, userId: string): Promise<boolean>;
|
|
83
|
+
/**
|
|
84
|
+
* Truy xuất thông tin tùy biến của người dùng
|
|
85
|
+
* Endpoint: https://openapi.zalo.me/v3.0/oa/user/detail/custominfo
|
|
86
|
+
* Method: GET with data parameter as JSON string
|
|
87
|
+
*
|
|
88
|
+
* @param accessToken OA access token
|
|
89
|
+
* @param request Get custom info request with user_id and optional fields_to_export
|
|
90
|
+
* @returns Promise<UserCustomInfoResponse> - Custom info data
|
|
91
|
+
*
|
|
92
|
+
* Note: Tất cả giá trị trong custom_info đều được trả về dưới dạng string
|
|
34
93
|
*/
|
|
35
|
-
|
|
94
|
+
getUserCustomInfo(accessToken: string, request: GetUserCustomInfoRequest): Promise<UserCustomInfoResponse>;
|
|
36
95
|
/**
|
|
37
|
-
*
|
|
96
|
+
* Cập nhật thông tin tùy biến của người dùng
|
|
97
|
+
* Endpoint: https://openapi.zalo.me/v3.0/oa/user/update/custominfo
|
|
98
|
+
* Method: POST
|
|
99
|
+
*
|
|
100
|
+
* @param accessToken OA access token
|
|
101
|
+
* @param request Update custom info request with user_id and custom_info
|
|
102
|
+
* @returns Promise<boolean> - true if successful
|
|
103
|
+
*
|
|
104
|
+
* Note: Cấu trúc custom_info phụ thuộc vào thiết lập OA
|
|
38
105
|
*/
|
|
39
|
-
|
|
106
|
+
updateUserCustomInfo(accessToken: string, request: UpdateUserCustomInfoRequest): Promise<boolean>;
|
|
40
107
|
/**
|
|
41
|
-
*
|
|
108
|
+
* Lấy danh sách nhãn
|
|
109
|
+
* Endpoint: https://openapi.zalo.me/v2.0/oa/tag/gettagsofoa
|
|
110
|
+
* Method: GET
|
|
111
|
+
*
|
|
112
|
+
* @param accessToken OA access token
|
|
113
|
+
* @returns Promise<string[]> - Array of tag names
|
|
42
114
|
*/
|
|
43
|
-
|
|
115
|
+
getLabels(accessToken: string): Promise<string[]>;
|
|
44
116
|
/**
|
|
45
|
-
*
|
|
117
|
+
* Gắn nhãn người dùng
|
|
118
|
+
* Endpoint: https://openapi.zalo.me/v2.0/oa/tag/tagfollower
|
|
119
|
+
*
|
|
120
|
+
* @param accessToken OA access token
|
|
121
|
+
* @param request Tag user request with user_id and tag_name
|
|
122
|
+
* @returns Promise<boolean> - true if successful
|
|
123
|
+
*
|
|
124
|
+
* Note: Nếu tag_name không tồn tại, API sẽ tự động tạo nhãn mới
|
|
46
125
|
*/
|
|
47
|
-
|
|
126
|
+
addTagToUser(accessToken: string, request: TagUserRequest): Promise<boolean>;
|
|
48
127
|
/**
|
|
49
|
-
*
|
|
128
|
+
* Gỡ nhãn người dùng
|
|
129
|
+
* Endpoint: https://openapi.zalo.me/v2.0/oa/tag/rmfollowerfromtag
|
|
130
|
+
*
|
|
131
|
+
* @param accessToken OA access token
|
|
132
|
+
* @param request Remove tag request with user_id and tag_name
|
|
133
|
+
* @returns Promise<boolean> - true if successful
|
|
50
134
|
*/
|
|
51
|
-
|
|
135
|
+
removeTagFromUser(accessToken: string, request: RemoveTagFromUserRequest): Promise<boolean>;
|
|
52
136
|
/**
|
|
53
|
-
*
|
|
137
|
+
* Xóa nhãn
|
|
138
|
+
* Endpoint: https://openapi.zalo.me/v2.0/oa/tag/rmtag
|
|
139
|
+
* Method: POST
|
|
140
|
+
*
|
|
141
|
+
* @param accessToken OA access token
|
|
142
|
+
* @param tagName Tag name to delete
|
|
143
|
+
* @returns Promise<boolean> - true if successful
|
|
54
144
|
*/
|
|
55
|
-
deleteLabel(accessToken: string,
|
|
145
|
+
deleteLabel(accessToken: string, tagName: string): Promise<boolean>;
|
|
56
146
|
/**
|
|
57
147
|
* Get users by tag
|
|
58
148
|
*/
|
|
@@ -68,14 +158,14 @@ export declare class UserService {
|
|
|
68
158
|
/**
|
|
69
159
|
* Bulk tag operations
|
|
70
160
|
*/
|
|
71
|
-
bulkAddTag(accessToken: string, userIds: string[],
|
|
161
|
+
bulkAddTag(accessToken: string, userIds: string[], tagName: string): Promise<{
|
|
72
162
|
success: string[];
|
|
73
163
|
failed: string[];
|
|
74
164
|
}>;
|
|
75
165
|
/**
|
|
76
166
|
* Bulk remove tag operations
|
|
77
167
|
*/
|
|
78
|
-
bulkRemoveTag(accessToken: string, userIds: string[],
|
|
168
|
+
bulkRemoveTag(accessToken: string, userIds: string[], tagName: string): Promise<{
|
|
79
169
|
success: string[];
|
|
80
170
|
failed: string[];
|
|
81
171
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../src/services/user.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../src/services/user.service.ts"],"names":[],"mappings":"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"}
|