@warriorteam/redai-zalo-sdk
Version:
Comprehensive TypeScript/JavaScript SDK for Zalo APIs - Official Account v3.0, ZNS with Full Type Safety, Consultation Service, Broadcast Service, Group Messaging with List APIs, Social APIs, Enhanced Article Management, Promotion Service v3.0 with Multip
427 lines • 8.96 kB
TypeScript
/**
* 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