UNPKG

@warriorteam/redai-zalo-sdk

Version:

Comprehensive TypeScript/JavaScript SDK for Zalo APIs - Official Account, ZNS, Consultation Service, Group Messaging, and Social APIs

153 lines 5.99 kB
import { ZaloClient } from "../clients/zalo-client"; import { ArticleRequest, ArticleNormalRequest, ArticleVideoRequest, ArticleResponse, ArticleProcessResponse, ArticleVerifyResponse, ArticleDetail, ArticleListRequest, ArticleListResponse, ArticleRemoveResponse, ArticleUpdateRequest, ArticleUpdateNormalRequest, ArticleUpdateVideoRequest, ArticleUpdateResponse, ArticleStatus, CommentStatus } from "../types/article"; /** * Service for handling Zalo Official Account Article Management APIs * * CONDITIONS FOR USING ZALO ARTICLE MANAGEMENT: * * 1. GENERAL CONDITIONS: * - OA must have permission to create articles * - Access token must have "manage_article" scope * - OA must have active status and be verified * * 2. ARTICLE CREATION: * - Title: required, max 150 characters * - Author: required for normal articles, max 50 characters * - Description: required, max 300 characters * - Image size: max 1MB per image * - Status: 'show' (publish immediately) or 'hide' (draft) * - Comment: 'show' (allow comments) or 'hide' (disable comments) * * 3. CONTENT VALIDATION: * - Normal articles: must have cover, body content, and author * - Video articles: must have video_id and avatar * - Body items: support text, image, video, and product types * - Tracking links: must be valid URLs * * 4. LIMITS AND CONSTRAINTS: * - Article list: max 100 items per request * - Processing time: use token to check progress * - Update frequency: reasonable intervals recommended */ export declare class ArticleService { private readonly client; private readonly endpoints; constructor(client: ZaloClient); /** * Create normal article with rich content * @param accessToken OA access token * @param request Normal article information * @returns Token for tracking creation progress */ createNormalArticle(accessToken: string, request: ArticleNormalRequest): Promise<ArticleResponse>; /** * Create video article * @param accessToken OA access token * @param request Video article information * @returns Token for tracking creation progress */ createVideoArticle(accessToken: string, request: ArticleVideoRequest): Promise<ArticleResponse>; /** * Create article (automatically detect type) * @param accessToken OA access token * @param request Article information * @returns Token for tracking creation progress */ createArticle(accessToken: string, request: ArticleRequest): Promise<ArticleResponse>; /** * Check article creation progress * @param accessToken OA access token * @param token Token from article creation response * @returns Progress information */ checkArticleProcess(accessToken: string, token: string): Promise<ArticleProcessResponse>; /** * Verify article and get article ID * @param accessToken OA access token * @param token Token from article creation or update response * @returns Article ID */ verifyArticle(accessToken: string, token: string): Promise<ArticleVerifyResponse>; /** * Get article details * @param accessToken OA access token * @param articleId Article ID * @returns Article details */ getArticleDetail(accessToken: string, articleId: string): Promise<ArticleDetail>; /** * Get article list * @param accessToken OA access token * @param request List parameters * @returns Article list */ getArticleList(accessToken: string, request: ArticleListRequest): Promise<ArticleListResponse>; /** * Remove article * @param accessToken OA access token * @param articleId Article ID to remove * @returns Removal result */ removeArticle(accessToken: string, articleId: string): Promise<ArticleRemoveResponse>; private handleArticleError; /** * Update normal article * @param accessToken OA access token * @param request Update information * @returns Token for tracking update progress */ updateNormalArticle(accessToken: string, request: ArticleUpdateNormalRequest): Promise<ArticleUpdateResponse>; /** * Update video article * @param accessToken OA access token * @param request Update information * @returns Token for tracking update progress */ updateVideoArticle(accessToken: string, request: ArticleUpdateVideoRequest): Promise<ArticleUpdateResponse>; /** * Update article (automatically detect type) * @param accessToken OA access token * @param request Update information * @returns Token for tracking update progress */ updateArticle(accessToken: string, request: ArticleUpdateRequest): Promise<ArticleUpdateResponse>; /** * Update article status only * @param accessToken OA access token * @param articleId Article ID to update * @param status New status ('show' or 'hide') * @param comment Optional comment status ('show' or 'hide') * @returns Token for tracking update progress */ updateArticleStatus(accessToken: string, articleId: string, status: ArticleStatus, comment?: CommentStatus): Promise<ArticleUpdateResponse>; /** * Validate normal article creation request */ private validateNormalArticleRequest; /** * Validate video article creation request */ private validateVideoArticleRequest; /** * Validate article list request */ private validateArticleListRequest; /** * Validate normal article update request */ private validateUpdateNormalArticleRequest; /** * Validate video article update request */ private validateUpdateVideoArticleRequest; /** * Validate cover information */ private validateCover; /** * Validate body item */ private validateBodyItem; private isValidTrackingLink; } //# sourceMappingURL=article.service.d.ts.map