@pakoor/n8n-nodes-instagram 0.1.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/README.md +271 -0
- package/dist/__tests__/helpers/index.d.ts +2 -0
- package/dist/__tests__/helpers/index.d.ts.map +1 -0
- package/dist/__tests__/helpers/index.js +18 -0
- package/dist/__tests__/helpers/index.js.map +1 -0
- package/dist/__tests__/helpers/testUtils.d.ts +104 -0
- package/dist/__tests__/helpers/testUtils.d.ts.map +1 -0
- package/dist/__tests__/helpers/testUtils.js +175 -0
- package/dist/__tests__/helpers/testUtils.js.map +1 -0
- package/dist/credentials/InstagramAccessTokenApi.credentials.d.ts +19 -0
- package/dist/credentials/InstagramAccessTokenApi.credentials.d.ts.map +1 -0
- package/dist/credentials/InstagramAccessTokenApi.credentials.js +130 -0
- package/dist/credentials/InstagramAccessTokenApi.credentials.js.map +1 -0
- package/dist/credentials/InstagramOAuth2Api.credentials.d.ts +20 -0
- package/dist/credentials/InstagramOAuth2Api.credentials.d.ts.map +1 -0
- package/dist/credentials/InstagramOAuth2Api.credentials.js +177 -0
- package/dist/credentials/InstagramOAuth2Api.credentials.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/nodes/Instagram/Instagram.node.d.ts +10 -0
- package/dist/nodes/Instagram/Instagram.node.d.ts.map +1 -0
- package/dist/nodes/Instagram/Instagram.node.js +1152 -0
- package/dist/nodes/Instagram/Instagram.node.js.map +1 -0
- package/dist/nodes/Instagram/InstagramTrigger.node.d.ts +61 -0
- package/dist/nodes/Instagram/InstagramTrigger.node.d.ts.map +1 -0
- package/dist/nodes/Instagram/InstagramTrigger.node.js +315 -0
- package/dist/nodes/Instagram/InstagramTrigger.node.js.map +1 -0
- package/dist/nodes/Instagram/instagram.svg +15 -0
- package/dist/services/InstagramApiClient.d.ts +261 -0
- package/dist/services/InstagramApiClient.d.ts.map +1 -0
- package/dist/services/InstagramApiClient.js +548 -0
- package/dist/services/InstagramApiClient.js.map +1 -0
- package/dist/services/TokenManager.d.ts +73 -0
- package/dist/services/TokenManager.d.ts.map +1 -0
- package/dist/services/TokenManager.js +150 -0
- package/dist/services/TokenManager.js.map +1 -0
- package/dist/services/ValidationUtils.d.ts +44 -0
- package/dist/services/ValidationUtils.d.ts.map +1 -0
- package/dist/services/ValidationUtils.js +203 -0
- package/dist/services/ValidationUtils.js.map +1 -0
- package/dist/services/WebhookHandler.d.ts +206 -0
- package/dist/services/WebhookHandler.d.ts.map +1 -0
- package/dist/services/WebhookHandler.js +261 -0
- package/dist/services/WebhookHandler.js.map +1 -0
- package/dist/services/index.d.ts +5 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +21 -0
- package/dist/services/index.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instagram API Client
|
|
3
|
+
* Handles all Instagram Graph API interactions
|
|
4
|
+
*/
|
|
5
|
+
export type MediaType = 'image' | 'audio' | 'video';
|
|
6
|
+
export type ContainerType = 'IMAGE' | 'VIDEO' | 'REELS' | 'STORIES';
|
|
7
|
+
export interface IMessageResponse {
|
|
8
|
+
recipient_id: string;
|
|
9
|
+
message_id: string;
|
|
10
|
+
}
|
|
11
|
+
export interface IButton {
|
|
12
|
+
type: 'web_url' | 'postback';
|
|
13
|
+
title: string;
|
|
14
|
+
url?: string;
|
|
15
|
+
payload?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ICarouselElement {
|
|
18
|
+
title: string;
|
|
19
|
+
subtitle?: string;
|
|
20
|
+
image_url?: string;
|
|
21
|
+
buttons?: IButton[];
|
|
22
|
+
}
|
|
23
|
+
export interface IQuickReply {
|
|
24
|
+
content_type: 'text';
|
|
25
|
+
title: string;
|
|
26
|
+
payload: string;
|
|
27
|
+
image_url?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface IUserProfile {
|
|
30
|
+
id: string;
|
|
31
|
+
name?: string;
|
|
32
|
+
username?: string;
|
|
33
|
+
profile_pic?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface IBusinessAccount {
|
|
36
|
+
id: string;
|
|
37
|
+
username: string;
|
|
38
|
+
name?: string;
|
|
39
|
+
profile_picture_url?: string;
|
|
40
|
+
followers_count?: number;
|
|
41
|
+
media_count?: number;
|
|
42
|
+
}
|
|
43
|
+
export interface IPaginationOptions {
|
|
44
|
+
limit?: number;
|
|
45
|
+
after?: string;
|
|
46
|
+
before?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface IPaging {
|
|
49
|
+
cursors?: {
|
|
50
|
+
before: string;
|
|
51
|
+
after: string;
|
|
52
|
+
};
|
|
53
|
+
next?: string;
|
|
54
|
+
previous?: string;
|
|
55
|
+
}
|
|
56
|
+
export interface IComment {
|
|
57
|
+
id: string;
|
|
58
|
+
text: string;
|
|
59
|
+
timestamp: string;
|
|
60
|
+
from: {
|
|
61
|
+
id: string;
|
|
62
|
+
username: string;
|
|
63
|
+
};
|
|
64
|
+
like_count?: number;
|
|
65
|
+
hidden?: boolean;
|
|
66
|
+
}
|
|
67
|
+
export interface ICommentsResponse {
|
|
68
|
+
data: IComment[];
|
|
69
|
+
paging?: IPaging;
|
|
70
|
+
}
|
|
71
|
+
export interface IMediaContainer {
|
|
72
|
+
id: string;
|
|
73
|
+
status?: 'EXPIRED' | 'ERROR' | 'FINISHED' | 'IN_PROGRESS' | 'PUBLISHED';
|
|
74
|
+
status_code?: string;
|
|
75
|
+
}
|
|
76
|
+
export interface IMediaDetails {
|
|
77
|
+
id: string;
|
|
78
|
+
media_type: 'IMAGE' | 'VIDEO' | 'CAROUSEL_ALBUM' | 'REELS';
|
|
79
|
+
media_url?: string;
|
|
80
|
+
permalink?: string;
|
|
81
|
+
caption?: string;
|
|
82
|
+
timestamp: string;
|
|
83
|
+
like_count?: number;
|
|
84
|
+
comments_count?: number;
|
|
85
|
+
}
|
|
86
|
+
export interface IUserTag {
|
|
87
|
+
username: string;
|
|
88
|
+
x: number;
|
|
89
|
+
y: number;
|
|
90
|
+
}
|
|
91
|
+
export interface IMediaOptions {
|
|
92
|
+
caption?: string;
|
|
93
|
+
location_id?: string;
|
|
94
|
+
user_tags?: IUserTag[];
|
|
95
|
+
collaborators?: string[];
|
|
96
|
+
thumb_offset?: number;
|
|
97
|
+
audio_name?: string;
|
|
98
|
+
}
|
|
99
|
+
export interface IInstagramError {
|
|
100
|
+
code: number;
|
|
101
|
+
message: string;
|
|
102
|
+
subcode?: number;
|
|
103
|
+
fbtrace_id?: string;
|
|
104
|
+
type?: string;
|
|
105
|
+
suggestion?: string;
|
|
106
|
+
retryable?: boolean;
|
|
107
|
+
retryAfter?: number;
|
|
108
|
+
}
|
|
109
|
+
/** Raw API error response structure */
|
|
110
|
+
interface IApiErrorResponse {
|
|
111
|
+
error: {
|
|
112
|
+
message: string;
|
|
113
|
+
type?: string;
|
|
114
|
+
code: number;
|
|
115
|
+
error_subcode?: number;
|
|
116
|
+
fbtrace_id?: string;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
export declare class InstagramApiError extends Error {
|
|
120
|
+
readonly code: number;
|
|
121
|
+
readonly subcode?: number;
|
|
122
|
+
readonly fbtrace_id?: string;
|
|
123
|
+
readonly type?: string;
|
|
124
|
+
readonly suggestion?: string;
|
|
125
|
+
readonly retryable: boolean;
|
|
126
|
+
readonly retryAfter?: number;
|
|
127
|
+
constructor(error: IInstagramError);
|
|
128
|
+
toJSON(): IInstagramError;
|
|
129
|
+
}
|
|
130
|
+
export declare class InstagramApiClient {
|
|
131
|
+
protected readonly baseUrl = "https://graph.facebook.com/v18.0";
|
|
132
|
+
protected readonly accessToken: string;
|
|
133
|
+
protected readonly accountId: string;
|
|
134
|
+
constructor(accessToken: string, accountId: string);
|
|
135
|
+
/**
|
|
136
|
+
* Parse API error response and return enhanced error object
|
|
137
|
+
* Requirements: 14.1, 14.2, 14.3
|
|
138
|
+
*/
|
|
139
|
+
protected parseErrorResponse(response: IApiErrorResponse): IInstagramError;
|
|
140
|
+
/**
|
|
141
|
+
* Make authenticated GET request to Instagram Graph API
|
|
142
|
+
*/
|
|
143
|
+
protected get<T>(endpoint: string, params?: Record<string, string>): Promise<T>;
|
|
144
|
+
/**
|
|
145
|
+
* Make authenticated POST request to Instagram Graph API
|
|
146
|
+
*/
|
|
147
|
+
protected post<T>(endpoint: string, body?: Record<string, unknown>): Promise<T>;
|
|
148
|
+
/**
|
|
149
|
+
* Make authenticated DELETE request to Instagram Graph API
|
|
150
|
+
*/
|
|
151
|
+
protected delete<T>(endpoint: string): Promise<T>;
|
|
152
|
+
/**
|
|
153
|
+
* Send a text message to a user
|
|
154
|
+
* Requirements: 3.1, 3.2, 3.4
|
|
155
|
+
*/
|
|
156
|
+
sendTextMessage(recipientId: string, text: string): Promise<IMessageResponse>;
|
|
157
|
+
/**
|
|
158
|
+
* Send a media message (image, audio, video)
|
|
159
|
+
* Requirements: 4.1, 4.2, 4.3, 4.4, 4.5
|
|
160
|
+
*/
|
|
161
|
+
sendMediaMessage(recipientId: string, mediaType: MediaType, mediaUrl: string): Promise<IMessageResponse>;
|
|
162
|
+
/**
|
|
163
|
+
* Send a button template message
|
|
164
|
+
* Requirements: 5.1, 5.2, 5.6
|
|
165
|
+
*/
|
|
166
|
+
sendButtonTemplate(recipientId: string, text: string, buttons: IButton[]): Promise<IMessageResponse>;
|
|
167
|
+
/**
|
|
168
|
+
* Send a generic template (carousel) message
|
|
169
|
+
* Requirements: 5.3, 5.6
|
|
170
|
+
*/
|
|
171
|
+
sendGenericTemplate(recipientId: string, elements: ICarouselElement[]): Promise<IMessageResponse>;
|
|
172
|
+
/**
|
|
173
|
+
* Send quick replies
|
|
174
|
+
* Requirements: 5.4, 5.5, 5.6
|
|
175
|
+
*/
|
|
176
|
+
sendQuickReplies(recipientId: string, text: string, quickReplies: IQuickReply[]): Promise<IMessageResponse>;
|
|
177
|
+
/**
|
|
178
|
+
* Get user profile by IGSID
|
|
179
|
+
* Requirements: 6.1, 6.3
|
|
180
|
+
*/
|
|
181
|
+
getUserProfile(userId: string): Promise<IUserProfile>;
|
|
182
|
+
/**
|
|
183
|
+
* Get authenticated account profile
|
|
184
|
+
* Requirements: 6.2, 6.3
|
|
185
|
+
*/
|
|
186
|
+
getMyProfile(): Promise<IBusinessAccount>;
|
|
187
|
+
/**
|
|
188
|
+
* Get comments on a media with pagination
|
|
189
|
+
* Requirements: 7.1
|
|
190
|
+
*/
|
|
191
|
+
getComments(mediaId: string, options?: IPaginationOptions): Promise<ICommentsResponse>;
|
|
192
|
+
/**
|
|
193
|
+
* Get replies to a comment
|
|
194
|
+
* Requirements: 7.2
|
|
195
|
+
*/
|
|
196
|
+
getReplies(commentId: string): Promise<ICommentsResponse>;
|
|
197
|
+
/**
|
|
198
|
+
* Reply to a comment publicly
|
|
199
|
+
* Requirements: 7.3
|
|
200
|
+
*/
|
|
201
|
+
replyToComment(commentId: string, message: string): Promise<IComment>;
|
|
202
|
+
/**
|
|
203
|
+
* Send private reply to a commenter (DM)
|
|
204
|
+
* Requirements: 7.4, 7.5
|
|
205
|
+
*/
|
|
206
|
+
sendPrivateReply(commentId: string, message: string): Promise<IMessageResponse>;
|
|
207
|
+
/**
|
|
208
|
+
* Delete a comment
|
|
209
|
+
* Requirements: 7.6
|
|
210
|
+
*/
|
|
211
|
+
deleteComment(commentId: string): Promise<{
|
|
212
|
+
success: boolean;
|
|
213
|
+
}>;
|
|
214
|
+
/**
|
|
215
|
+
* Hide or unhide a comment
|
|
216
|
+
* Requirements: 7.7
|
|
217
|
+
*/
|
|
218
|
+
toggleCommentVisibility(commentId: string, hide: boolean): Promise<{
|
|
219
|
+
success: boolean;
|
|
220
|
+
hidden: boolean;
|
|
221
|
+
}>;
|
|
222
|
+
/**
|
|
223
|
+
* Create a media container for single posts, stories, or reels
|
|
224
|
+
* Requirements: 8.1, 8.2, 10.1, 10.2, 10.4
|
|
225
|
+
*/
|
|
226
|
+
createMediaContainer(mediaType: ContainerType, mediaUrl: string, options?: IMediaOptions): Promise<IMediaContainer>;
|
|
227
|
+
/**
|
|
228
|
+
* Create a carousel container from child media containers
|
|
229
|
+
* Requirements: 9.4, 9.5
|
|
230
|
+
*/
|
|
231
|
+
createCarouselContainer(childrenIds: string[], caption?: string): Promise<IMediaContainer>;
|
|
232
|
+
/**
|
|
233
|
+
* Publish a media container
|
|
234
|
+
* Requirements: 8.3, 9.5, 10.5
|
|
235
|
+
*/
|
|
236
|
+
publishMedia(containerId: string): Promise<{
|
|
237
|
+
id: string;
|
|
238
|
+
}>;
|
|
239
|
+
/**
|
|
240
|
+
* List media with pagination
|
|
241
|
+
* Requirements: 11.1
|
|
242
|
+
*/
|
|
243
|
+
listMedia(options?: IPaginationOptions): Promise<{
|
|
244
|
+
data: IMediaDetails[];
|
|
245
|
+
paging?: IPaging;
|
|
246
|
+
}>;
|
|
247
|
+
/**
|
|
248
|
+
* Get media details by ID
|
|
249
|
+
* Requirements: 11.2
|
|
250
|
+
*/
|
|
251
|
+
getMedia(mediaId: string): Promise<IMediaDetails>;
|
|
252
|
+
/**
|
|
253
|
+
* Get carousel children
|
|
254
|
+
* Requirements: 11.3
|
|
255
|
+
*/
|
|
256
|
+
getMediaChildren(mediaId: string): Promise<{
|
|
257
|
+
data: IMediaDetails[];
|
|
258
|
+
}>;
|
|
259
|
+
}
|
|
260
|
+
export {};
|
|
261
|
+
//# sourceMappingURL=InstagramApiClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstagramApiClient.d.ts","sourceRoot":"","sources":["../../src/services/InstagramApiClient.ts"],"names":[],"mappings":"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"}
|