UNPKG

@warriorteam/redai-zalo-sdk

Version:

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

427 lines 8.96 kB
/** * Zalo Social API Type Definitions */ export interface AccessToken { access_token: string; token_type: 'Bearer'; expires_in: number; refresh_token: string; scope: string; } export interface RefreshTokenResponse { access_token: string; token_type: 'Bearer'; expires_in: number; refresh_token?: string; scope: string; } export interface SocialUserInfo { id: string; name: string; picture?: { data: { url: string; }; }; birthday?: string; gender?: 'male' | 'female'; locale?: string; email?: string; phone?: string; verified?: boolean; } export interface SocialProfile extends SocialUserInfo { cover?: { source: string; }; about?: string; location?: { name: string; id: string; }; hometown?: { name: string; id: string; }; education?: Array<{ school: { name: string; id: string; }; type: string; year?: { name: string; }; }>; work?: Array<{ employer: { name: string; id: string; }; position?: { name: string; }; start_date?: string; end_date?: string; }>; relationship_status?: string; website?: string; timezone?: number; updated_time?: string; } export interface SocialFriend { id: string; name: string; picture?: { data: { url: string; }; }; mutual_friends?: { data: Array<{ id: string; name: string; }>; summary: { total_count: number; }; }; } export interface SocialFriendsList { data: SocialFriend[]; paging?: { cursors?: { before: string; after: string; }; next?: string; previous?: string; }; summary?: { total_count: number; }; } export interface SocialPost { id: string; message?: string; story?: string; link?: string; name?: string; caption?: string; description?: string; picture?: string; source?: string; type: 'status' | 'photo' | 'video' | 'link' | 'offer' | 'music' | 'note'; created_time: string; updated_time?: string; privacy?: { value: 'EVERYONE' | 'ALL_FRIENDS' | 'FRIENDS_OF_FRIENDS' | 'CUSTOM'; description?: string; friends?: 'ALL_FRIENDS' | 'FRIENDS_OF_FRIENDS' | 'SOME_FRIENDS'; networks?: string; allow?: string; deny?: string; }; likes?: { data: Array<{ id: string; name: string; }>; summary: { total_count: number; can_like: boolean; has_liked: boolean; }; }; comments?: { data: Array<{ id: string; from: { id: string; name: string; }; message: string; created_time: string; like_count: number; user_likes: boolean; }>; summary: { order: 'chronological' | 'reverse_chronological'; total_count: number; can_comment: boolean; }; }; shares?: { count: number; }; } export interface SocialFeed { data: SocialPost[]; paging?: { previous?: string; next?: string; }; } export interface SocialMessage { id: string; from: { id: string; name: string; }; to: { data: Array<{ id: string; name: string; }>; }; message?: string; created_time: string; updated_time?: string; attachments?: { data: Array<{ id: string; mime_type: string; name: string; size: number; file_url?: string; image_data?: { url: string; width: number; height: number; }; }>; }; } export interface SocialConversation { id: string; participants: { data: Array<{ id: string; name: string; }>; }; updated_time: string; message_count: number; unread_count: number; can_reply: boolean; snippet?: string; } export interface SocialAlbum { id: string; name: string; description?: string; cover_photo?: { id: string; source: string; }; count: number; type: 'profile' | 'mobile' | 'wall' | 'normal' | 'album'; created_time: string; updated_time: string; privacy?: string; can_upload: boolean; } export interface SocialPhoto { id: string; album?: { id: string; name: string; }; name?: string; picture: string; source: string; height: number; width: number; images: Array<{ height: number; width: number; source: string; }>; created_time: string; updated_time?: string; tags?: { data: Array<{ id: string; name: string; x: number; y: number; }>; }; likes?: { data: Array<{ id: string; name: string; }>; summary: { total_count: number; }; }; comments?: { data: Array<{ id: string; from: { id: string; name: string; }; message: string; created_time: string; }>; summary: { total_count: number; }; }; } export interface SocialVideo { id: string; title?: string; description?: string; embed_html?: string; picture: string; source?: string; format: Array<{ embed_html: string; filter: string; height: number; width: number; picture: string; }>; length: number; created_time: string; updated_time?: string; privacy?: { value: string; description: string; }; } export interface SocialEvent { id: string; name: string; description?: string; start_time: string; end_time?: string; timezone?: string; location?: string; venue?: { id: string; name: string; street: string; city: string; state: string; country: string; zip: string; latitude: number; longitude: number; }; privacy: 'OPEN' | 'CLOSED' | 'SECRET'; attending_count: number; declined_count: number; maybe_count: number; noreply_count: number; owner: { id: string; name: string; }; updated_time: string; cover?: { source: string; offset_x: number; offset_y: number; }; picture?: { data: { url: string; }; }; } export interface SocialGroup { id: string; name: string; description?: string; privacy: 'OPEN' | 'CLOSED' | 'SECRET'; member_count?: number; cover?: { source: string; offset_x: number; offset_y: number; }; picture?: { data: { url: string; }; }; owner?: { id: string; name: string; }; parent?: { id: string; name: string; }; venue?: { id: string; name: string; street: string; city: string; state: string; country: string; zip: string; latitude: number; longitude: number; }; updated_time: string; } export interface OAuthConfig { app_id: string; app_secret: string; redirect_uri: string; scope: string[]; } export interface PKCEConfig { code_verifier: string; code_challenge: string; code_challenge_method: 'S256'; } export interface AuthorizationRequest { app_id: string; redirect_uri: string; state: string; code_challenge: string; scope: string; response_type: 'code'; } export interface TokenRequest { app_id: string; app_secret: string; code: string; code_verifier: string; grant_type: 'authorization_code'; } export interface RefreshTokenRequest { app_id: string; app_secret: string; refresh_token: string; grant_type: 'refresh_token'; } export interface SocialApiError { error: { message: string; type: string; code: number; error_subcode?: number; fbtrace_id?: string; }; } export interface CursorPagination { cursors: { before: string; after: string; }; next?: string; previous?: string; } export interface OffsetPagination { offset: number; limit: number; total?: number; } //# sourceMappingURL=social.d.ts.map