@pakoor/n8n-nodes-instagram 0.1.2 → 0.1.3

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.
@@ -1,20 +1,21 @@
1
- import type { IAuthenticateGeneric, ICredentialDataDecryptedObject, ICredentialTestRequest, ICredentialType, IHttpRequestHelper, INodeProperties } from 'n8n-workflow';
1
+ import type { ICredentialDataDecryptedObject, ICredentialTestRequest, ICredentialType, IDataObject, IHttpRequestHelper, INodeProperties } from 'n8n-workflow';
2
2
  export declare class InstagramOAuth2Api implements ICredentialType {
3
3
  name: string;
4
+ extends: string[];
4
5
  displayName: string;
5
6
  documentationUrl: string;
6
- extends: string[];
7
7
  properties: INodeProperties[];
8
- authenticate: IAuthenticateGeneric;
9
- test: ICredentialTestRequest;
10
8
  /**
11
- * Pre-authentication hook to exchange short-lived token for long-lived token
12
- * and auto-discover Instagram Business Account ID
9
+ * Pre-authentication hook that exchanges short-lived OAuth token for a long-lived token
10
+ * and refreshes it when near expiration. n8n automatically persists the returned values.
13
11
  *
14
- * Requirements:
15
- * - 1.3: Exchange short-lived token for long-lived token
16
- * - 1.6: Auto-discover Instagram Business Account ID
12
+ * This is called by n8n before each API request when the credential has an expirable field.
13
+ * If this function returns new credential data, n8n will persist it to the database.
17
14
  */
18
- preAuthentication(this: IHttpRequestHelper, credentials: ICredentialDataDecryptedObject): Promise<ICredentialDataDecryptedObject>;
15
+ preAuthentication(this: IHttpRequestHelper, credentials: ICredentialDataDecryptedObject): Promise<IDataObject>;
16
+ /**
17
+ * Test the credentials to ensure they work
18
+ */
19
+ test: ICredentialTestRequest;
19
20
  }
20
21
  //# sourceMappingURL=InstagramOAuth2Api.credentials.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InstagramOAuth2Api.credentials.d.ts","sourceRoot":"","sources":["../../src/credentials/InstagramOAuth2Api.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,8BAA8B,EAC9B,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,eAAe,EAChB,MAAM,cAAc,CAAC;AAuCtB,qBAAa,kBAAmB,YAAW,eAAe;IACxD,IAAI,SAAwB;IAC5B,WAAW,SAA0B;IACrC,gBAAgB,SAAyD;IACzE,OAAO,WAAiB;IAExB,UAAU,EAAE,eAAe,EAAE,CAkE3B;IAEF,YAAY,EAAE,oBAAoB,CAOhC;IAEF,IAAI,EAAE,sBAAsB,CAQ1B;IAEF;;;;;;;OAOG;IACG,iBAAiB,CACrB,IAAI,EAAE,kBAAkB,EACxB,WAAW,EAAE,8BAA8B,GAC1C,OAAO,CAAC,8BAA8B,CAAC;CAkE3C"}
1
+ {"version":3,"file":"InstagramOAuth2Api.credentials.d.ts","sourceRoot":"","sources":["../../src/credentials/InstagramOAuth2Api.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,EAC9B,sBAAsB,EACtB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,eAAe,EAChB,MAAM,cAAc,CAAC;AAEtB,qBAAa,kBAAmB,YAAW,eAAe;IACxD,IAAI,SAAwB;IAC5B,OAAO,WAAiB;IACxB,WAAW,SAA0B;IACrC,gBAAgB,SAAwE;IAExF,UAAU,EAAE,eAAe,EAAE,CAgG3B;IAEF;;;;;;OAMG;IACG,iBAAiB,CACrB,IAAI,EAAE,kBAAkB,EACxB,WAAW,EAAE,8BAA8B,GAC1C,OAAO,CAAC,WAAW,CAAC;IA6EvB;;OAEG;IACH,IAAI,EAAE,sBAAsB,CAS1B;CACH"}
@@ -4,9 +4,9 @@ exports.InstagramOAuth2Api = void 0;
4
4
  class InstagramOAuth2Api {
5
5
  constructor() {
6
6
  this.name = 'instagramOAuth2Api';
7
- this.displayName = 'Instagram OAuth2 API';
8
- this.documentationUrl = 'https://developers.facebook.com/docs/instagram-api/';
9
7
  this.extends = ['oAuth2Api'];
8
+ this.displayName = 'Instagram OAuth2 API';
9
+ this.documentationUrl = 'https://developers.facebook.com/docs/instagram-api/getting-started';
10
10
  this.properties = [
11
11
  {
12
12
  displayName: 'Grant Type',
@@ -18,19 +18,19 @@ class InstagramOAuth2Api {
18
18
  displayName: 'Authorization URL',
19
19
  name: 'authUrl',
20
20
  type: 'hidden',
21
- default: 'https://www.facebook.com/v18.0/dialog/oauth',
21
+ default: 'https://api.instagram.com/oauth/authorize',
22
22
  },
23
23
  {
24
24
  displayName: 'Access Token URL',
25
25
  name: 'accessTokenUrl',
26
26
  type: 'hidden',
27
- default: 'https://graph.facebook.com/v18.0/oauth/access_token',
27
+ default: 'https://api.instagram.com/oauth/access_token',
28
28
  },
29
29
  {
30
30
  displayName: 'Scope',
31
31
  name: 'scope',
32
32
  type: 'hidden',
33
- default: 'instagram_basic,instagram_manage_messages,instagram_manage_comments,instagram_content_publish,pages_show_list,pages_manage_metadata',
33
+ default: 'instagram_business_basic,instagram_business_manage_messages,instagram_business_manage_comments,instagram_business_content_publish',
34
34
  },
35
35
  {
36
36
  displayName: 'Auth URI Query Parameters',
@@ -45,114 +45,148 @@ class InstagramOAuth2Api {
45
45
  default: 'body',
46
46
  },
47
47
  {
48
- displayName: 'Instagram Account ID',
49
- name: 'instagramAccountId',
48
+ displayName: 'Account Information',
49
+ name: 'accountInfoNotice',
50
+ type: 'notice',
51
+ default: '',
52
+ description: 'After connecting your account, your Instagram Business Account details (username, ID, profile) will be automatically available. You can access this information in your workflow nodes. The system will automatically exchange your OAuth token for a long-lived token (60 days) and persist it, ensuring it survives n8n restarts.',
53
+ },
54
+ {
55
+ displayName: 'Client ID',
56
+ name: 'clientId',
50
57
  type: 'string',
51
58
  default: '',
52
- description: 'Auto-discovered after authentication. Leave empty for auto-discovery.',
59
+ required: true,
60
+ description: 'The Instagram App ID from your Meta Developer Console. <a href="https://developers.facebook.com/apps/" target="_blank">Get it here</a>.',
61
+ placeholder: '1234567890123456',
53
62
  },
54
63
  {
55
- displayName: 'Long-Lived Token',
56
- name: 'longLivedToken',
57
- type: 'hidden',
64
+ displayName: 'Client Secret',
65
+ name: 'clientSecret',
66
+ type: 'string',
58
67
  typeOptions: {
59
68
  password: true,
60
69
  },
61
70
  default: '',
71
+ required: true,
72
+ description: 'The Instagram App Secret from your Meta Developer Console',
73
+ placeholder: 'abc123def456...',
62
74
  },
63
75
  {
64
- displayName: 'Long-Lived Token Expires At',
65
- name: 'longLivedTokenExpiresAt',
76
+ displayName: 'Webhook Verify Token',
77
+ name: 'webhookVerifyToken',
78
+ type: 'string',
79
+ typeOptions: { password: true },
80
+ default: '',
81
+ required: false,
82
+ description: 'Optional: Custom verification token for webhook setup (minimum 20 characters). Only needed if using Instagram Trigger node.',
83
+ placeholder: 'my_custom_verify_token_2024',
84
+ },
85
+ // Hidden field for long-lived token with expirable typeOption
86
+ // This enables n8n's preAuthentication system to persist the token
87
+ {
88
+ displayName: 'Long-Lived Token',
89
+ name: 'longLivedToken',
66
90
  type: 'hidden',
67
- default: 0,
91
+ typeOptions: {
92
+ expirable: true,
93
+ },
94
+ default: '',
68
95
  },
69
96
  {
70
- displayName: 'Long-Lived Token Created At',
71
- name: 'longLivedTokenCreatedAt',
97
+ displayName: 'Token Expires At',
98
+ name: 'tokenExpiresAt',
72
99
  type: 'hidden',
73
100
  default: 0,
74
101
  },
75
102
  ];
76
- this.authenticate = {
77
- type: 'generic',
78
- properties: {
79
- qs: {
80
- access_token: '={{$credentials.longLivedToken || $credentials.accessToken}}',
81
- },
82
- },
83
- };
103
+ /**
104
+ * Test the credentials to ensure they work
105
+ */
84
106
  this.test = {
85
107
  request: {
86
- baseURL: 'https://graph.facebook.com/v18.0',
108
+ baseURL: 'https://graph.instagram.com/v23.0',
87
109
  url: '/me',
110
+ method: 'GET',
88
111
  qs: {
89
- fields: 'id,name',
112
+ fields: 'id,username',
90
113
  },
91
114
  },
92
115
  };
93
116
  }
94
117
  /**
95
- * Pre-authentication hook to exchange short-lived token for long-lived token
96
- * and auto-discover Instagram Business Account ID
118
+ * Pre-authentication hook that exchanges short-lived OAuth token for a long-lived token
119
+ * and refreshes it when near expiration. n8n automatically persists the returned values.
97
120
  *
98
- * Requirements:
99
- * - 1.3: Exchange short-lived token for long-lived token
100
- * - 1.6: Auto-discover Instagram Business Account ID
121
+ * This is called by n8n before each API request when the credential has an expirable field.
122
+ * If this function returns new credential data, n8n will persist it to the database.
101
123
  */
102
124
  async preAuthentication(credentials) {
103
- const accessToken = credentials.accessToken;
125
+ const now = Math.floor(Date.now() / 1000);
126
+ const longLivedToken = credentials.longLivedToken;
127
+ const tokenExpiresAt = credentials.tokenExpiresAt || 0;
104
128
  const clientSecret = credentials.clientSecret;
105
- const clientId = credentials.clientId;
106
- if (!accessToken || !clientSecret || !clientId) {
107
- return credentials;
129
+ const oauthTokenData = credentials.oauthTokenData;
130
+ const shortLivedToken = oauthTokenData?.access_token;
131
+ // If we have a valid long-lived token that's not near expiration, no action needed
132
+ if (longLivedToken && tokenExpiresAt > 0) {
133
+ // Token is still valid with more than 7 days remaining
134
+ const sevenDaysInSeconds = 7 * 24 * 60 * 60;
135
+ if (tokenExpiresAt > now + sevenDaysInSeconds) {
136
+ return {}; // No update needed
137
+ }
138
+ // Token is valid but near expiration (< 7 days), try to refresh it
139
+ // Instagram allows refresh only if token is at least 24 hours old
140
+ const totalLifetime = 60 * 24 * 60 * 60; // 60 days
141
+ const tokenAge = now - (tokenExpiresAt - totalLifetime);
142
+ if (tokenAge >= 24 * 60 * 60) {
143
+ try {
144
+ const refreshed = (await this.helpers.httpRequest({
145
+ method: 'GET',
146
+ url: 'https://graph.instagram.com/refresh_access_token',
147
+ qs: {
148
+ grant_type: 'ig_refresh_token',
149
+ access_token: longLivedToken,
150
+ },
151
+ }));
152
+ return {
153
+ longLivedToken: refreshed.access_token,
154
+ tokenExpiresAt: now + refreshed.expires_in,
155
+ };
156
+ }
157
+ catch (error) {
158
+ // Refresh failed, but token is still valid - continue using it
159
+ console.warn('Instagram: Failed to refresh long-lived token, continuing with current token', error);
160
+ return {};
161
+ }
162
+ }
163
+ return {}; // Token too new to refresh
164
+ }
165
+ // No long-lived token yet - exchange short-lived OAuth token for long-lived
166
+ if (!shortLivedToken) {
167
+ // No token available at all
168
+ return {};
108
169
  }
109
- const updatedCredentials = { ...credentials };
110
170
  try {
111
- // Step 1: Exchange short-lived token for long-lived token (Requirement 1.3)
112
- const longLivedTokenResponse = await this.helpers.httpRequest({
171
+ const exchanged = (await this.helpers.httpRequest({
113
172
  method: 'GET',
114
- url: 'https://graph.facebook.com/v18.0/oauth/access_token',
173
+ url: 'https://graph.instagram.com/access_token',
115
174
  qs: {
116
- grant_type: 'fb_exchange_token',
117
- client_id: clientId,
175
+ grant_type: 'ig_exchange_token',
118
176
  client_secret: clientSecret,
119
- fb_exchange_token: accessToken,
120
- },
121
- });
122
- if (longLivedTokenResponse.access_token) {
123
- const now = Date.now();
124
- const expiresIn = longLivedTokenResponse.expires_in ?? 5184000; // Default 60 days
125
- updatedCredentials.longLivedToken = longLivedTokenResponse.access_token;
126
- updatedCredentials.longLivedTokenExpiresAt = now + expiresIn * 1000;
127
- updatedCredentials.longLivedTokenCreatedAt = now;
128
- }
129
- // Step 2: Auto-discover Instagram Business Account ID (Requirement 1.6)
130
- const tokenToUse = updatedCredentials.longLivedToken || accessToken;
131
- // Get pages connected to the user
132
- const pagesResponse = await this.helpers.httpRequest({
133
- method: 'GET',
134
- url: 'https://graph.facebook.com/v18.0/me/accounts',
135
- qs: {
136
- fields: 'instagram_business_account,id,name',
137
- access_token: tokenToUse,
177
+ access_token: shortLivedToken,
138
178
  },
139
- });
140
- // Find the first page with an Instagram Business Account
141
- if (pagesResponse.data && pagesResponse.data.length > 0) {
142
- for (const page of pagesResponse.data) {
143
- if (page.instagram_business_account?.id) {
144
- updatedCredentials.instagramAccountId = page.instagram_business_account.id;
145
- break;
146
- }
147
- }
148
- }
179
+ }));
180
+ return {
181
+ longLivedToken: exchanged.access_token,
182
+ tokenExpiresAt: now + exchanged.expires_in,
183
+ };
149
184
  }
150
185
  catch (error) {
151
- // Log error but don't fail - credentials might still work
152
- const errorResponse = error;
153
- console.warn('Instagram OAuth2 pre-authentication warning:', errorResponse?.error?.message ?? 'Unknown error');
186
+ // Exchange failed - the short-lived token may be expired
187
+ console.error('Instagram: Failed to exchange OAuth token for long-lived token', error);
188
+ return {};
154
189
  }
155
- return updatedCredentials;
156
190
  }
157
191
  }
158
192
  exports.InstagramOAuth2Api = InstagramOAuth2Api;
@@ -1 +1 @@
1
- {"version":3,"file":"InstagramOAuth2Api.credentials.js","sourceRoot":"","sources":["../../src/credentials/InstagramOAuth2Api.credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InstagramOAuth2Api.credentials.js","sourceRoot":"","sources":["../../src/credentials/InstagramOAuth2Api.credentials.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pakoor/n8n-nodes-instagram",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "n8n community node for Instagram Messaging API integration",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",