@warriorteam/redai-zalo-sdk 1.29.0 → 1.31.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/CHANGELOG.md +140 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/services/consultation.service.d.ts +114 -147
- package/dist/services/consultation.service.d.ts.map +1 -1
- package/dist/services/consultation.service.js +370 -0
- package/dist/services/consultation.service.js.map +1 -1
- package/dist/services/purchase.service.d.ts +209 -0
- package/dist/services/purchase.service.d.ts.map +1 -0
- package/dist/services/purchase.service.js +417 -0
- package/dist/services/purchase.service.js.map +1 -0
- package/dist/types/consultation.d.ts +253 -0
- package/dist/types/consultation.d.ts.map +1 -0
- package/dist/types/consultation.js +13 -0
- package/dist/types/consultation.js.map +1 -0
- package/dist/types/purchase.d.ts +268 -0
- package/dist/types/purchase.d.ts.map +1 -0
- package/dist/types/purchase.js +137 -0
- package/dist/types/purchase.js.map +1 -0
- package/dist/zalo-sdk.d.ts +2 -0
- package/dist/zalo-sdk.d.ts.map +1 -1
- package/dist/zalo-sdk.js +2 -0
- package/dist/zalo-sdk.js.map +1 -1
- package/examples/consultation-template-example.ts +324 -0
- package/package.json +16 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,146 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.31.0] - 2025-01-05
|
|
6
|
+
|
|
7
|
+
### ✨ Added - Complete Purchase API Support
|
|
8
|
+
|
|
9
|
+
#### 🛒 New Purchase Service
|
|
10
|
+
- **`PurchaseService`** - Complete service for Zalo OA Purchase API v3.0
|
|
11
|
+
- Full support for creating and confirming orders for OA products and services
|
|
12
|
+
- Type-safe order management with comprehensive validation
|
|
13
|
+
|
|
14
|
+
#### 🎯 Core Purchase Functions
|
|
15
|
+
- **`createOrder()`** - Create orders with product_id or redeem_code
|
|
16
|
+
- **`confirmOrder()`** - Confirm order payment with OTT (One Time Token)
|
|
17
|
+
- **`createOrderWithProduct()`** - Create order with specific product ID
|
|
18
|
+
- **`createOrderWithRedeemCode()`** - Create order with gift/redeem code
|
|
19
|
+
- **`confirmOrderById()`** - Confirm order with separate order ID and token
|
|
20
|
+
|
|
21
|
+
#### 🏷️ Specialized Product APIs
|
|
22
|
+
- **`createOASubscriptionOrder()`** - Create OA subscription orders (Advanced/Premium 6m/12m)
|
|
23
|
+
- **`createGMFOrder()`** - Create Group Message Framework orders (10/50/100/1000 members)
|
|
24
|
+
- **`createTransactionQuotaOrder()`** - Create transaction message quota orders (5k/50k/500k)
|
|
25
|
+
|
|
26
|
+
#### 📦 Batch & Combo Operations
|
|
27
|
+
- **`createMultipleOrders()`** - Create multiple orders in batch with error isolation
|
|
28
|
+
- **`createOAPremiumGMFCombo()`** - Create Premium + GMF combo packages
|
|
29
|
+
- **`recommendProducts()`** - Smart product recommendation system
|
|
30
|
+
|
|
31
|
+
#### 🗂️ Product Management
|
|
32
|
+
- **`getProductInfo()`** - Get detailed product information by ID
|
|
33
|
+
- **`getAllProducts()`** - Get all available products
|
|
34
|
+
- **`getProductsByCategory()`** - Filter products by category (subscription/gmf/quota)
|
|
35
|
+
- **`getProductsByBeneficiary()`** - Filter products by beneficiary (OA/APP)
|
|
36
|
+
- **`isProductCompatibleWithBeneficiary()`** - Validate product compatibility
|
|
37
|
+
|
|
38
|
+
#### 🕐 Order Timing & Validation
|
|
39
|
+
- **`isOrderCreationTimeValid()`** - Check if current time allows order creation (00:01-23:54)
|
|
40
|
+
- **`calculateOTTExpiration()`** - Calculate OTT expiration time (5 minutes)
|
|
41
|
+
- **`isOTTValid()`** - Check if OTT is still valid
|
|
42
|
+
|
|
43
|
+
#### 📋 TypeScript Interfaces & Types
|
|
44
|
+
- **`CreateOrderRequest`** - Union type for product_id or redeem_code orders
|
|
45
|
+
- **`CreateOrderWithProductRequest`** - Interface for product-based orders
|
|
46
|
+
- **`CreateOrderWithRedeemRequest`** - Interface for redeem code orders
|
|
47
|
+
- **`ConfirmOrderRequest`** - Interface for order confirmation
|
|
48
|
+
- **`OrderData`** - Complete order data with verified_token (OTT)
|
|
49
|
+
- **`ConfirmedOrderData`** - Confirmed order data (without OTT)
|
|
50
|
+
- **`ProductInfo`** - Product information interface
|
|
51
|
+
- **`BeneficiaryType`** - Type for OA/APP beneficiaries
|
|
52
|
+
|
|
53
|
+
#### 🏪 Complete Product Catalog
|
|
54
|
+
- **OA Subscription Products**:
|
|
55
|
+
- OA Advanced 6/12 months
|
|
56
|
+
- OA Premium 6/12 months
|
|
57
|
+
- **GMF Products**:
|
|
58
|
+
- GMF 10/50/100/1000 members
|
|
59
|
+
- **Transaction Quota Products**:
|
|
60
|
+
- 5k/50k/500k transaction messages (1 month)
|
|
61
|
+
|
|
62
|
+
#### ✅ Advanced Features
|
|
63
|
+
- **Automatic Validation**: Product-beneficiary compatibility checking
|
|
64
|
+
- **Error Isolation**: Batch operations continue on individual failures
|
|
65
|
+
- **Smart Recommendations**: AI-powered product suggestions based on requirements
|
|
66
|
+
- **Time Validation**: Automatic order creation time window checking
|
|
67
|
+
- **OTT Management**: Complete One Time Token lifecycle management
|
|
68
|
+
- **Type Safety**: Full TypeScript support with compile-time validation
|
|
69
|
+
|
|
70
|
+
#### 🔧 Error Handling & Validation
|
|
71
|
+
- Comprehensive error codes for all purchase scenarios
|
|
72
|
+
- Detailed validation for all request parameters
|
|
73
|
+
- Graceful error handling in batch operations
|
|
74
|
+
- Clear error messages with context information
|
|
75
|
+
|
|
76
|
+
## [1.30.0] - 2025-01-05
|
|
77
|
+
|
|
78
|
+
### ✨ Added - Template Message Support for ConsultationService
|
|
79
|
+
|
|
80
|
+
#### 🎯 New Core Function
|
|
81
|
+
- **`sendTemplateMessage()`** - Comprehensive template message function with full elements and buttons support
|
|
82
|
+
- Support for all Zalo OA template types with complete API specification compliance
|
|
83
|
+
- Type-safe template creation with comprehensive validation
|
|
84
|
+
|
|
85
|
+
#### 🛠️ Helper Functions (12 new functions)
|
|
86
|
+
- **Template Elements**: `createTemplateElement()` - Create template elements with validation
|
|
87
|
+
- **Template Buttons**:
|
|
88
|
+
- `createUrlButton()` - Create URL buttons (oa.open.url)
|
|
89
|
+
- `createQueryShowButton()` - Create query show buttons (oa.query.show)
|
|
90
|
+
- `createQueryHideButton()` - Create query hide buttons (oa.query.hide)
|
|
91
|
+
- `createSmsButton()` - Create SMS buttons (oa.open.sms)
|
|
92
|
+
- `createPhoneButton()` - Create phone call buttons (oa.open.phone)
|
|
93
|
+
- **Template Actions**:
|
|
94
|
+
- `createUrlAction()` - Create URL actions for elements
|
|
95
|
+
- `createQueryShowAction()` - Create query show actions
|
|
96
|
+
- `createQueryHideAction()` - Create query hide actions
|
|
97
|
+
- `createSmsAction()` - Create SMS actions
|
|
98
|
+
- `createPhoneAction()` - Create phone call actions
|
|
99
|
+
|
|
100
|
+
#### 📋 TypeScript Interfaces
|
|
101
|
+
- **`TemplateElement`** - Interface for template elements with validation rules
|
|
102
|
+
- **`TemplateButton`** - Interface for template buttons with type-specific payloads
|
|
103
|
+
- **`TemplateAction`** - Interface for template actions (default_action in elements)
|
|
104
|
+
- **`ConsultationTemplatePayload`** - Union type for all payload types
|
|
105
|
+
- **`UrlPayload`**, **`SmsPayload`**, **`PhonePayload`** - Specific payload interfaces
|
|
106
|
+
|
|
107
|
+
#### ✅ API Specification Compliance
|
|
108
|
+
- **Elements**: Maximum 5 elements, first element must have subtitle
|
|
109
|
+
- **Buttons**: Maximum 5 buttons with comprehensive validation
|
|
110
|
+
- **Title**: ≤ 100 characters validation
|
|
111
|
+
- **Subtitle**: ≤ 500 characters validation (required for first element)
|
|
112
|
+
- **Payload**: ≤ 1000 characters for string payloads
|
|
113
|
+
- **SMS Content**: ≤ 160 characters validation
|
|
114
|
+
- **Action Types**: Full support for all Zalo OA action types
|
|
115
|
+
|
|
116
|
+
#### 🔧 Validation & Error Handling
|
|
117
|
+
- Comprehensive input validation before API calls
|
|
118
|
+
- Detailed error messages with context information
|
|
119
|
+
- Type-safe development experience with TypeScript
|
|
120
|
+
- Runtime validation for all API specification rules
|
|
121
|
+
|
|
122
|
+
#### 📁 New Files
|
|
123
|
+
- `src/types/consultation.ts` - Complete TypeScript interfaces for consultation service
|
|
124
|
+
- `examples/consultation-template-example.ts` - Comprehensive usage examples
|
|
125
|
+
- `CONSULTATION-TEMPLATE-ENHANCEMENT.md` - Detailed documentation
|
|
126
|
+
|
|
127
|
+
#### 🔄 Updated Files
|
|
128
|
+
- `src/services/consultation.service.ts` - Added template message functions
|
|
129
|
+
- `src/index.ts` - Export new consultation types
|
|
130
|
+
|
|
131
|
+
### 🎯 Use Cases Supported
|
|
132
|
+
- **Customer Support Templates** - Multi-element templates with various action buttons
|
|
133
|
+
- **Information Request Templates** - Templates requesting user information with callbacks
|
|
134
|
+
- **Interactive Templates** - Templates with URL, SMS, phone, and query actions
|
|
135
|
+
- **Marketing Templates** - Templates with multiple call-to-action buttons
|
|
136
|
+
- **Service Templates** - Templates for service interactions and support
|
|
137
|
+
|
|
138
|
+
### 💡 Developer Experience Improvements
|
|
139
|
+
- **Type Safety**: Full TypeScript support with comprehensive interfaces
|
|
140
|
+
- **IntelliSense**: Complete autocomplete support for all template properties
|
|
141
|
+
- **Validation**: Automatic validation with clear error messages
|
|
142
|
+
- **Helper Functions**: Easy-to-use functions for creating template components
|
|
143
|
+
- **Documentation**: Comprehensive examples and API documentation
|
|
144
|
+
|
|
5
145
|
## [1.29.0] - 2025-01-05
|
|
6
146
|
|
|
7
147
|
### 🚀 Major Type Safety Improvements
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export * from "./types/zns";
|
|
|
16
16
|
export * from "./types/article";
|
|
17
17
|
export * from "./types/broadcast";
|
|
18
18
|
export * from "./types/promotion";
|
|
19
|
+
export * from "./types/consultation";
|
|
20
|
+
export * from "./types/purchase";
|
|
19
21
|
export * from "./constants/zns.constants";
|
|
20
22
|
export type { BaseMessage, TextMessage, ImageMessage, FileMessage, StickerMessage, TemplateMessage as MessageTemplateMessage, ReactionMessage as MessageReactionMessage, Message, MessageRecipient, SendMessageRequest, SendMessageResponse, UploadFileResponse, MessageStatus, MessageEvent, ConsultationTextMessage, ConsultationImageMessage, ConsultationFileMessage, ConsultationStickerMessage, ConsultationQuoteMessage, ConsultationRequestInfoMessage, TransactionMessage, AnonymousTextMessage, AnonymousImageMessage, AnonymousFileMessage, AnonymousStickerMessage, MiniAppMessage, ExtendedMessage, } from "./types/message";
|
|
21
23
|
export * from "./types/webhook";
|
|
@@ -39,6 +41,7 @@ export { PromotionService } from "./services/promotion.service";
|
|
|
39
41
|
export { GeneralMessageService } from "./services/general-message.service";
|
|
40
42
|
export { MessageManagementService, UploadFileResult, UploadImageResult, MessageQuotaInfo, ConversationMessage, Conversation, MessagePagination } from "./services/message-management.service";
|
|
41
43
|
export { BroadcastService } from "./services/broadcast.service";
|
|
44
|
+
export { PurchaseService } from "./services/purchase.service";
|
|
42
45
|
export { ZaloSDK } from "./zalo-sdk";
|
|
43
46
|
export { ZaloSDK as default } from "./zalo-sdk";
|
|
44
47
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -24,7 +24,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
24
24
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
25
25
|
};
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
exports.default = exports.ZaloSDK = exports.BroadcastService = exports.MessageManagementService = exports.GeneralMessageService = exports.PromotionService = exports.TransactionService = exports.ConsultationService = exports.VideoUploadService = exports.ArticleService = exports.GroupManagementService = exports.GroupMessageService = exports.ZNSService = exports.UserService = exports.OAService = exports.AuthService = exports.ZaloClient = exports.BaseClient = exports.getMessageDirection = exports.isOAToGroupMessageEvent = exports.isOAToUserMessageEvent = exports.isGroupMessageEvent = exports.isUserMessageEvent = exports.isFromPersonal = exports.isFromGroup = exports.isOASendGroupGifEvent = exports.isOASendGroupStickerEvent = exports.isOASendGroupFileEvent = exports.isOASendGroupImageEvent = exports.isOASendGroupTextEvent = exports.isOASendGifEvent = exports.isOASendStickerEvent = exports.isOASendFileEvent = exports.isOASendImageEvent = exports.isOASendTextEvent = exports.isUserGroupMessageEvent = exports.isUserSendGroupFileEvent = exports.isUserSendGroupAudioEvent = exports.isUserSendGroupVideoEvent = exports.isUserSendGroupImageEvent = exports.isUserSendGroupTextEvent = void 0;
|
|
27
|
+
exports.default = exports.ZaloSDK = exports.PurchaseService = exports.BroadcastService = exports.MessageManagementService = exports.GeneralMessageService = exports.PromotionService = exports.TransactionService = exports.ConsultationService = exports.VideoUploadService = exports.ArticleService = exports.GroupManagementService = exports.GroupMessageService = exports.ZNSService = exports.UserService = exports.OAService = exports.AuthService = exports.ZaloClient = exports.BaseClient = exports.getMessageDirection = exports.isOAToGroupMessageEvent = exports.isOAToUserMessageEvent = exports.isGroupMessageEvent = exports.isUserMessageEvent = exports.isFromPersonal = exports.isFromGroup = exports.isOASendGroupGifEvent = exports.isOASendGroupStickerEvent = exports.isOASendGroupFileEvent = exports.isOASendGroupImageEvent = exports.isOASendGroupTextEvent = exports.isOASendGifEvent = exports.isOASendStickerEvent = exports.isOASendFileEvent = exports.isOASendImageEvent = exports.isOASendTextEvent = exports.isUserGroupMessageEvent = exports.isUserSendGroupFileEvent = exports.isUserSendGroupAudioEvent = exports.isUserSendGroupVideoEvent = exports.isUserSendGroupImageEvent = exports.isUserSendGroupTextEvent = void 0;
|
|
28
28
|
// Export types
|
|
29
29
|
__exportStar(require("./types/common"), exports);
|
|
30
30
|
__exportStar(require("./types/auth"), exports);
|
|
@@ -34,6 +34,8 @@ __exportStar(require("./types/zns"), exports);
|
|
|
34
34
|
__exportStar(require("./types/article"), exports);
|
|
35
35
|
__exportStar(require("./types/broadcast"), exports);
|
|
36
36
|
__exportStar(require("./types/promotion"), exports);
|
|
37
|
+
__exportStar(require("./types/consultation"), exports);
|
|
38
|
+
__exportStar(require("./types/purchase"), exports);
|
|
37
39
|
// Export ZNS constants and helpers
|
|
38
40
|
__exportStar(require("./constants/zns.constants"), exports);
|
|
39
41
|
// Export webhook types (avoiding conflicts with message and group types)
|
|
@@ -102,6 +104,8 @@ var message_management_service_1 = require("./services/message-management.servic
|
|
|
102
104
|
Object.defineProperty(exports, "MessageManagementService", { enumerable: true, get: function () { return message_management_service_1.MessageManagementService; } });
|
|
103
105
|
var broadcast_service_1 = require("./services/broadcast.service");
|
|
104
106
|
Object.defineProperty(exports, "BroadcastService", { enumerable: true, get: function () { return broadcast_service_1.BroadcastService; } });
|
|
107
|
+
var purchase_service_1 = require("./services/purchase.service");
|
|
108
|
+
Object.defineProperty(exports, "PurchaseService", { enumerable: true, get: function () { return purchase_service_1.PurchaseService; } });
|
|
105
109
|
// Export main SDK class
|
|
106
110
|
var zalo_sdk_1 = require("./zalo-sdk");
|
|
107
111
|
Object.defineProperty(exports, "ZaloSDK", { enumerable: true, get: function () { return zalo_sdk_1.ZaloSDK; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;AAEH,eAAe;AACf,iDAA+B;AAC/B,+CAA6B;AAC7B,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,kDAAgC;AAChC,oDAAkC;AAClC,oDAAkC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;AAEH,eAAe;AACf,iDAA+B;AAC/B,+CAA6B;AAC7B,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,kDAAgC;AAChC,oDAAkC;AAClC,oDAAkC;AAClC,uDAAqC;AACrC,mDAAiC;AAEjC,mCAAmC;AACnC,4DAA0C;AAkC1C,yEAAyE;AACzE,kDAAgC;AAEhC,yEAAyE;AACzE,mDAoB6B;AAlB3B,uHAAA,wBAAwB,OAAA;AACxB,wHAAA,yBAAyB,OAAA;AACzB,wHAAA,yBAAyB,OAAA;AACzB,wHAAA,yBAAyB,OAAA;AACzB,uHAAA,wBAAwB,OAAA;AACxB,sHAAA,uBAAuB,OAAA;AACvB,gHAAA,iBAAiB,OAAA;AACjB,iHAAA,kBAAkB,OAAA;AAClB,gHAAA,iBAAiB,OAAA;AACjB,mHAAA,oBAAoB,OAAA;AACpB,+GAAA,gBAAgB,OAAA;AAChB,qHAAA,sBAAsB,OAAA;AACtB,sHAAA,uBAAuB,OAAA;AACvB,qHAAA,sBAAsB,OAAA;AACtB,wHAAA,yBAAyB,OAAA;AACzB,oHAAA,qBAAqB,OAAA;AACrB,0GAAA,WAAW,OAAA;AACX,6GAAA,cAAc,OAAA;AAEhB,kCAAkC;AAClC,2CAMyB;AALvB,6GAAA,kBAAkB,OAAA;AAClB,8GAAA,mBAAmB,OAAA;AACnB,iHAAA,sBAAsB,OAAA;AACtB,kHAAA,uBAAuB,OAAA;AACvB,8GAAA,mBAAmB,OAAA;AAoFrB,iBAAiB;AACjB,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AACnB,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AAEnB,kBAAkB;AAClB,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AACpB,oDAAkD;AAAzC,uGAAA,SAAS,OAAA;AAClB,2GAA2G;AAC3G,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AACpB,+DAA+D;AAC/D,sDAAoD;AAA3C,yGAAA,UAAU,OAAA;AACnB,0EAAuE;AAA9D,4HAAA,mBAAmB,OAAA;AAC5B,gFAA6E;AAApE,kIAAA,sBAAsB,OAAA;AAC/B,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,wEAAqE;AAA5D,0HAAA,kBAAkB,OAAA;AAE3B,iDAAiD;AACjD,wEAAsE;AAA7D,2HAAA,mBAAmB,OAAA;AAC5B,sEAAoE;AAA3D,yHAAA,kBAAkB,OAAA;AAC3B,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,8EAA2E;AAAlE,gIAAA,qBAAqB,OAAA;AAC9B,oFAQ+C;AAP7C,sIAAA,wBAAwB,OAAA;AAQ1B,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,gEAA8D;AAArD,mHAAA,eAAe,OAAA;AAExB,wBAAwB;AACxB,uCAAqC;AAA5B,mGAAA,OAAO,OAAA;AAEhB,iBAAiB;AACjB,uCAAgD;AAAvC,mGAAA,OAAO,OAAW"}
|
|
@@ -1,152 +1,6 @@
|
|
|
1
1
|
import { ZaloClient } from "../clients/zalo-client";
|
|
2
2
|
import { MessageRecipient, SendMessageResponse, TextMessage, ConsultationQuoteMessage } from "../types/message";
|
|
3
|
-
|
|
4
|
-
* Interface cho từng tin nhắn trong chuỗi tin nhắn
|
|
5
|
-
*/
|
|
6
|
-
export interface MessageItem {
|
|
7
|
-
/** Loại tin nhắn */
|
|
8
|
-
type: "text" | "image" | "gif" | "file" | "sticker" | "request_user_info";
|
|
9
|
-
/** Nội dung tin nhắn (cho text message) */
|
|
10
|
-
text?: string;
|
|
11
|
-
/** URL hình ảnh (cho image/gif message) */
|
|
12
|
-
imageUrl?: string;
|
|
13
|
-
/** URL GIF (cho gif message) */
|
|
14
|
-
gifUrl?: string;
|
|
15
|
-
/** Chiều rộng GIF (bắt buộc cho gif) */
|
|
16
|
-
width?: number;
|
|
17
|
-
/** Chiều cao GIF (bắt buộc cho gif) */
|
|
18
|
-
height?: number;
|
|
19
|
-
/** Token file (cho file message) */
|
|
20
|
-
fileToken?: string;
|
|
21
|
-
/** Attachment ID (cho image/sticker message) */
|
|
22
|
-
attachmentId?: string;
|
|
23
|
-
/** Sticker attachment ID (cho sticker message) */
|
|
24
|
-
stickerAttachmentId?: string;
|
|
25
|
-
/** Tiêu đề (cho request_user_info message) */
|
|
26
|
-
title?: string;
|
|
27
|
-
/** Tiêu đề phụ (cho request_user_info message) */
|
|
28
|
-
subtitle?: string;
|
|
29
|
-
/** Delay sau khi gửi tin nhắn này (milliseconds) */
|
|
30
|
-
delay?: number;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Interface cho request gửi chuỗi tin nhắn
|
|
34
|
-
*/
|
|
35
|
-
export interface SendMessageSequenceRequest {
|
|
36
|
-
/** Access token của Official Account */
|
|
37
|
-
accessToken: string;
|
|
38
|
-
/** ID người nhận */
|
|
39
|
-
userId: string;
|
|
40
|
-
/** Danh sách tin nhắn */
|
|
41
|
-
messages: MessageItem[];
|
|
42
|
-
/** Delay mặc định giữa các tin nhắn (milliseconds) - nếu không có delay riêng */
|
|
43
|
-
defaultDelay?: number;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Interface cho response gửi chuỗi tin nhắn
|
|
47
|
-
*/
|
|
48
|
-
export interface SendMessageSequenceResponse {
|
|
49
|
-
/** Tổng số tin nhắn đã gửi thành công */
|
|
50
|
-
successCount: number;
|
|
51
|
-
/** Tổng số tin nhắn thất bại */
|
|
52
|
-
failureCount: number;
|
|
53
|
-
/** Chi tiết kết quả từng tin nhắn */
|
|
54
|
-
results: Array<{
|
|
55
|
-
/** Index của tin nhắn trong danh sách */
|
|
56
|
-
index: number;
|
|
57
|
-
/** Loại tin nhắn */
|
|
58
|
-
type: string;
|
|
59
|
-
/** Trạng thái gửi */
|
|
60
|
-
success: boolean;
|
|
61
|
-
/** Thông tin response nếu thành công */
|
|
62
|
-
response?: SendMessageResponse;
|
|
63
|
-
/** Thông tin lỗi nếu thất bại */
|
|
64
|
-
error?: string;
|
|
65
|
-
/** Thời gian gửi */
|
|
66
|
-
timestamp: number;
|
|
67
|
-
}>;
|
|
68
|
-
/** Tổng thời gian thực hiện (milliseconds) */
|
|
69
|
-
totalDuration: number;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Interface cho request gửi chuỗi tin nhắn tới nhiều users
|
|
73
|
-
*/
|
|
74
|
-
export interface SendMessageSequenceToMultipleUsersRequest {
|
|
75
|
-
/** Access token của Official Account */
|
|
76
|
-
accessToken: string;
|
|
77
|
-
/** Danh sách user IDs */
|
|
78
|
-
userIds: string[];
|
|
79
|
-
/** Danh sách tin nhắn */
|
|
80
|
-
messages: MessageItem[];
|
|
81
|
-
/** Delay mặc định giữa các tin nhắn (milliseconds) */
|
|
82
|
-
defaultDelay?: number;
|
|
83
|
-
/** Delay giữa các user (milliseconds) để tránh rate limit */
|
|
84
|
-
delayBetweenUsers?: number;
|
|
85
|
-
/** Callback function để tracking tiến trình */
|
|
86
|
-
onProgress?: (progress: UserProgressInfo) => void;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Interface cho thông tin tiến trình từng user
|
|
90
|
-
*/
|
|
91
|
-
export interface UserProgressInfo {
|
|
92
|
-
/** User ID hiện tại */
|
|
93
|
-
userId: string;
|
|
94
|
-
/** Index của user trong danh sách (bắt đầu từ 0) */
|
|
95
|
-
userIndex: number;
|
|
96
|
-
/** Tổng số users */
|
|
97
|
-
totalUsers: number;
|
|
98
|
-
/** Trạng thái: 'started' | 'completed' | 'failed' */
|
|
99
|
-
status: 'started' | 'completed' | 'failed';
|
|
100
|
-
/** Kết quả gửi tin nhắn (nếu đã hoàn thành) */
|
|
101
|
-
result?: SendMessageSequenceResponse;
|
|
102
|
-
/** Thông tin lỗi (nếu thất bại) */
|
|
103
|
-
error?: string;
|
|
104
|
-
/** Thời gian bắt đầu */
|
|
105
|
-
startTime: number;
|
|
106
|
-
/** Thời gian kết thúc (nếu đã hoàn thành) */
|
|
107
|
-
endTime?: number;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Interface cho response gửi chuỗi tin nhắn tới nhiều users
|
|
111
|
-
*/
|
|
112
|
-
export interface SendMessageSequenceToMultipleUsersResponse {
|
|
113
|
-
/** Tổng số users */
|
|
114
|
-
totalUsers: number;
|
|
115
|
-
/** Số users gửi thành công */
|
|
116
|
-
successfulUsers: number;
|
|
117
|
-
/** Số users gửi thất bại */
|
|
118
|
-
failedUsers: number;
|
|
119
|
-
/** Chi tiết kết quả từng user */
|
|
120
|
-
userResults: Array<{
|
|
121
|
-
/** User ID */
|
|
122
|
-
userId: string;
|
|
123
|
-
/** Index của user trong danh sách */
|
|
124
|
-
userIndex: number;
|
|
125
|
-
/** Trạng thái gửi cho user này */
|
|
126
|
-
success: boolean;
|
|
127
|
-
/** Kết quả chi tiết gửi tin nhắn */
|
|
128
|
-
messageSequenceResult?: SendMessageSequenceResponse;
|
|
129
|
-
/** Thông tin lỗi nếu thất bại */
|
|
130
|
-
error?: string;
|
|
131
|
-
/** Thời gian bắt đầu gửi */
|
|
132
|
-
startTime: number;
|
|
133
|
-
/** Thời gian kết thúc */
|
|
134
|
-
endTime: number;
|
|
135
|
-
/** Thời gian thực hiện (milliseconds) */
|
|
136
|
-
duration: number;
|
|
137
|
-
}>;
|
|
138
|
-
/** Tổng thời gian thực hiện (milliseconds) */
|
|
139
|
-
totalDuration: number;
|
|
140
|
-
/** Thống kê tin nhắn tổng cộng */
|
|
141
|
-
messageStats: {
|
|
142
|
-
/** Tổng số tin nhắn đã gửi thành công */
|
|
143
|
-
totalSuccessfulMessages: number;
|
|
144
|
-
/** Tổng số tin nhắn thất bại */
|
|
145
|
-
totalFailedMessages: number;
|
|
146
|
-
/** Tổng số tin nhắn */
|
|
147
|
-
totalMessages: number;
|
|
148
|
-
};
|
|
149
|
-
}
|
|
3
|
+
import { TemplateAction, TemplateElement, TemplateButton, SendMessageSequenceRequest, SendMessageSequenceResponse, SendMessageSequenceToMultipleUsersRequest, SendMessageSequenceToMultipleUsersResponse } from "../types/consultation";
|
|
150
4
|
/**
|
|
151
5
|
* Service xử lý các API tin nhắn tư vấn của Zalo Official Account
|
|
152
6
|
*
|
|
@@ -328,6 +182,119 @@ export declare class ConsultationService {
|
|
|
328
182
|
* @returns Kết quả gửi tin nhắn cho tất cả users
|
|
329
183
|
*/
|
|
330
184
|
sendMessageSequenceToMultipleUsers(request: SendMessageSequenceToMultipleUsersRequest): Promise<SendMessageSequenceToMultipleUsersResponse>;
|
|
185
|
+
/**
|
|
186
|
+
* Gửi tin nhắn template tổng quát với elements và buttons
|
|
187
|
+
* Endpoint: https://openapi.zalo.me/v3.0/oa/message/cs
|
|
188
|
+
* Method: POST
|
|
189
|
+
*
|
|
190
|
+
* @param accessToken Access token của Official Account
|
|
191
|
+
* @param userId ID người nhận (user_id)
|
|
192
|
+
* @param templateType Loại template (ví dụ: "request_user_info")
|
|
193
|
+
* @param elements Mảng elements (tối đa 5 phần tử)
|
|
194
|
+
* @param buttons Mảng buttons (tối đa 5 phần tử, optional)
|
|
195
|
+
* @returns Thông tin tin nhắn đã gửi
|
|
196
|
+
*/
|
|
197
|
+
sendTemplateMessage(accessToken: string, userId: string, templateType: string, elements: TemplateElement[], buttons?: TemplateButton[]): Promise<SendMessageResponse>;
|
|
198
|
+
/**
|
|
199
|
+
* Validate template element theo quy tắc API
|
|
200
|
+
* @param element Template element cần validate
|
|
201
|
+
* @param index Index của element trong mảng (để báo lỗi)
|
|
202
|
+
*/
|
|
203
|
+
private validateTemplateElement;
|
|
204
|
+
/**
|
|
205
|
+
* Validate template button theo quy tắc API
|
|
206
|
+
* @param button Template button cần validate
|
|
207
|
+
* @param index Index của button trong mảng (để báo lỗi)
|
|
208
|
+
*/
|
|
209
|
+
private validateTemplateButton;
|
|
210
|
+
/**
|
|
211
|
+
* Validate template action (cho default_action)
|
|
212
|
+
* @param action Template action cần validate
|
|
213
|
+
* @param context Context để báo lỗi
|
|
214
|
+
*/
|
|
215
|
+
private validateTemplateAction;
|
|
216
|
+
/**
|
|
217
|
+
* Validate button payload theo type
|
|
218
|
+
* @param button Template button cần validate
|
|
219
|
+
* @param index Index của button trong mảng (để báo lỗi)
|
|
220
|
+
*/
|
|
221
|
+
private validateButtonPayload;
|
|
222
|
+
/**
|
|
223
|
+
* Helper function để tạo template element
|
|
224
|
+
* @param title Tiêu đề (bắt buộc, ≤ 100 ký tự)
|
|
225
|
+
* @param subtitle Tiêu đề phụ (≤ 500 ký tự)
|
|
226
|
+
* @param imageUrl URL ảnh (optional)
|
|
227
|
+
* @param defaultAction Hành động khi click (optional)
|
|
228
|
+
* @returns TemplateElement object
|
|
229
|
+
*/
|
|
230
|
+
createTemplateElement(title: string, subtitle?: string, imageUrl?: string, defaultAction?: TemplateAction): TemplateElement;
|
|
231
|
+
/**
|
|
232
|
+
* Helper function để tạo template button với URL
|
|
233
|
+
* @param title Tiêu đề button (≤ 100 ký tự)
|
|
234
|
+
* @param url URL để mở
|
|
235
|
+
* @returns TemplateButton object
|
|
236
|
+
*/
|
|
237
|
+
createUrlButton(title: string, url: string): TemplateButton;
|
|
238
|
+
/**
|
|
239
|
+
* Helper function để tạo template button với query (hiển thị)
|
|
240
|
+
* @param title Tiêu đề button (≤ 100 ký tự)
|
|
241
|
+
* @param payload Dữ liệu callback (≤ 1000 ký tự)
|
|
242
|
+
* @returns TemplateButton object
|
|
243
|
+
*/
|
|
244
|
+
createQueryShowButton(title: string, payload: string): TemplateButton;
|
|
245
|
+
/**
|
|
246
|
+
* Helper function để tạo template button với query (ẩn)
|
|
247
|
+
* @param title Tiêu đề button (≤ 100 ký tự)
|
|
248
|
+
* @param payload Dữ liệu callback (≤ 1000 ký tự)
|
|
249
|
+
* @returns TemplateButton object
|
|
250
|
+
*/
|
|
251
|
+
createQueryHideButton(title: string, payload: string): TemplateButton;
|
|
252
|
+
/**
|
|
253
|
+
* Helper function để tạo template button với SMS
|
|
254
|
+
* @param title Tiêu đề button (≤ 100 ký tự)
|
|
255
|
+
* @param phoneCode Số điện thoại
|
|
256
|
+
* @param content Nội dung SMS (≤ 160 ký tự)
|
|
257
|
+
* @returns TemplateButton object
|
|
258
|
+
*/
|
|
259
|
+
createSmsButton(title: string, phoneCode: string, content?: string): TemplateButton;
|
|
260
|
+
/**
|
|
261
|
+
* Helper function để tạo template button với Phone
|
|
262
|
+
* @param title Tiêu đề button (≤ 100 ký tự)
|
|
263
|
+
* @param phoneCode Số điện thoại
|
|
264
|
+
* @returns TemplateButton object
|
|
265
|
+
*/
|
|
266
|
+
createPhoneButton(title: string, phoneCode: string): TemplateButton;
|
|
267
|
+
/**
|
|
268
|
+
* Helper function để tạo template action với URL
|
|
269
|
+
* @param url URL để mở
|
|
270
|
+
* @returns TemplateAction object
|
|
271
|
+
*/
|
|
272
|
+
createUrlAction(url: string): TemplateAction;
|
|
273
|
+
/**
|
|
274
|
+
* Helper function để tạo template action với query (hiển thị)
|
|
275
|
+
* @param payload Dữ liệu callback (≤ 1000 ký tự)
|
|
276
|
+
* @returns TemplateAction object
|
|
277
|
+
*/
|
|
278
|
+
createQueryShowAction(payload: string): TemplateAction;
|
|
279
|
+
/**
|
|
280
|
+
* Helper function để tạo template action với query (ẩn)
|
|
281
|
+
* @param payload Dữ liệu callback (≤ 1000 ký tự)
|
|
282
|
+
* @returns TemplateAction object
|
|
283
|
+
*/
|
|
284
|
+
createQueryHideAction(payload: string): TemplateAction;
|
|
285
|
+
/**
|
|
286
|
+
* Helper function để tạo template action với SMS
|
|
287
|
+
* @param phoneCode Số điện thoại
|
|
288
|
+
* @param content Nội dung SMS (≤ 160 ký tự)
|
|
289
|
+
* @returns TemplateAction object
|
|
290
|
+
*/
|
|
291
|
+
createSmsAction(phoneCode: string, content?: string): TemplateAction;
|
|
292
|
+
/**
|
|
293
|
+
* Helper function để tạo template action với Phone
|
|
294
|
+
* @param phoneCode Số điện thoại
|
|
295
|
+
* @returns TemplateAction object
|
|
296
|
+
*/
|
|
297
|
+
createPhoneAction(phoneCode: string): TemplateAction;
|
|
331
298
|
/**
|
|
332
299
|
* Utility method để sleep/delay
|
|
333
300
|
* @param ms Thời gian delay tính bằng milliseconds
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consultation.service.d.ts","sourceRoot":"","sources":["../../src/services/consultation.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,wBAAwB,EACzB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"consultation.service.d.ts","sourceRoot":"","sources":["../../src/services/consultation.service.ts"],"names":[],"mappings":"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"}
|