@pakoor/n8n-nodes-instagram 0.1.13 → 0.1.15
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/dist/credentials/InstagramAccessTokenApi.credentials.js +3 -3
- package/dist/credentials/InstagramOAuth2Api.credentials.d.ts +1 -1
- package/dist/credentials/InstagramOAuth2Api.credentials.d.ts.map +1 -1
- package/dist/credentials/InstagramOAuth2Api.credentials.js +28 -21
- package/dist/credentials/InstagramOAuth2Api.credentials.js.map +1 -1
- package/dist/nodes/Instagram/InstagramTrigger.node.js +2 -2
- package/dist/nodes/Instagram/InstagramTrigger.node.js.map +1 -1
- package/dist/services/InstagramApiClient.d.ts +1 -1
- package/dist/services/InstagramApiClient.js +1 -1
- package/dist/services/InstagramHelpers.js +3 -3
- package/dist/services/TokenManager.js +1 -1
- package/package.json +1 -1
|
@@ -36,7 +36,7 @@ class InstagramAccessTokenApi {
|
|
|
36
36
|
};
|
|
37
37
|
this.test = {
|
|
38
38
|
request: {
|
|
39
|
-
baseURL: 'https://graph.facebook.com/
|
|
39
|
+
baseURL: 'https://graph.facebook.com/v23.0',
|
|
40
40
|
url: '/me',
|
|
41
41
|
qs: {
|
|
42
42
|
fields: 'id,name',
|
|
@@ -63,7 +63,7 @@ class InstagramAccessTokenApi {
|
|
|
63
63
|
// First, try a simple API call to validate the token
|
|
64
64
|
await this.helpers.httpRequest({
|
|
65
65
|
method: 'GET',
|
|
66
|
-
url: 'https://graph.facebook.com/
|
|
66
|
+
url: 'https://graph.facebook.com/v23.0/me',
|
|
67
67
|
qs: {
|
|
68
68
|
fields: 'id,name',
|
|
69
69
|
access_token: accessToken,
|
|
@@ -76,7 +76,7 @@ class InstagramAccessTokenApi {
|
|
|
76
76
|
// Get pages connected to the user
|
|
77
77
|
const pagesResponse = await this.helpers.httpRequest({
|
|
78
78
|
method: 'GET',
|
|
79
|
-
url: 'https://graph.facebook.com/
|
|
79
|
+
url: 'https://graph.facebook.com/v23.0/me/accounts',
|
|
80
80
|
qs: {
|
|
81
81
|
fields: 'instagram_business_account,id,name',
|
|
82
82
|
access_token: accessToken,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ICredentialDataDecryptedObject, ICredentialTestRequest, ICredentialType, IDataObject, IHttpRequestHelper, INodeProperties, IAuthenticateGeneric } from 'n8n-workflow';
|
|
2
2
|
export declare class InstagramOAuth2Api implements ICredentialType {
|
|
3
3
|
name: string;
|
|
4
4
|
extends: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstagramOAuth2Api.credentials.d.ts","sourceRoot":"","sources":["../../src/credentials/InstagramOAuth2Api.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"InstagramOAuth2Api.credentials.d.ts","sourceRoot":"","sources":["../../src/credentials/InstagramOAuth2Api.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,8BAA8B,EAC9B,sBAAsB,EACtB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,MAAM,cAAc,CAAC;AAEtB,qBAAa,kBAAmB,YAAW,eAAe;IACzD,IAAI,SAAwB;IAC5B,OAAO,WAAiB;IACxB,WAAW,SAA0B;IACrC,gBAAgB,SAA+G;IAE/H,UAAU,EAAE,eAAe,EAAE,CAwF3B;IAEF;;OAEG;IACH,YAAY,EAAE,oBAAoB,CAOhC;IAEF;;OAEG;IACG,iBAAiB,CACtB,IAAI,EAAE,kBAAkB,EACxB,WAAW,EAAE,8BAA8B,GACzC,OAAO,CAAC,WAAW,CAAC;IA2EvB;;OAEG;IACH,IAAI,EAAE,sBAAsB,CAS1B;CACF"}
|
|
@@ -18,13 +18,13 @@ class InstagramOAuth2Api {
|
|
|
18
18
|
displayName: 'Authorization URL',
|
|
19
19
|
name: 'authUrl',
|
|
20
20
|
type: 'hidden',
|
|
21
|
-
default: 'https://www.facebook.com/
|
|
21
|
+
default: 'https://www.facebook.com/v23.0/dialog/oauth',
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
displayName: 'Access Token URL',
|
|
25
25
|
name: 'accessTokenUrl',
|
|
26
26
|
type: 'hidden',
|
|
27
|
-
default: 'https://graph.facebook.com/
|
|
27
|
+
default: 'https://graph.facebook.com/v23.0/oauth/access_token',
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
displayName: 'Scope',
|
|
@@ -44,29 +44,31 @@ class InstagramOAuth2Api {
|
|
|
44
44
|
type: 'hidden',
|
|
45
45
|
default: 'body',
|
|
46
46
|
},
|
|
47
|
+
{
|
|
48
|
+
displayName: 'Account Information',
|
|
49
|
+
name: 'accountInfoNotice',
|
|
50
|
+
type: 'notice',
|
|
51
|
+
default: '',
|
|
52
|
+
description: 'After connecting your account, n8n will automatically exchange your token for a long-lived one (60 days) and persist it.',
|
|
53
|
+
},
|
|
47
54
|
{
|
|
48
55
|
displayName: 'Client ID (App ID)',
|
|
49
56
|
name: 'clientId',
|
|
50
57
|
type: 'string',
|
|
51
58
|
default: '',
|
|
52
59
|
required: true,
|
|
53
|
-
description: 'The App ID from your Meta Developer Console
|
|
60
|
+
description: 'The App ID from your Meta Developer Console > App Settings > Basic.',
|
|
54
61
|
},
|
|
55
62
|
{
|
|
56
63
|
displayName: 'Client Secret (App Secret)',
|
|
57
64
|
name: 'clientSecret',
|
|
58
65
|
type: 'string',
|
|
59
|
-
typeOptions: {
|
|
66
|
+
typeOptions: {
|
|
67
|
+
password: true,
|
|
68
|
+
},
|
|
60
69
|
default: '',
|
|
61
70
|
required: true,
|
|
62
|
-
description: 'The App Secret from your Meta Developer Console
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
displayName: 'Setup Instructions',
|
|
66
|
-
name: 'setupNotice',
|
|
67
|
-
type: 'notice',
|
|
68
|
-
default: '',
|
|
69
|
-
description: 'Before connecting: 1) In Meta Developer Console, add "Facebook Login for Business" product. 2) Go to Facebook Login > Settings and add your n8n OAuth callback URL to "Valid OAuth Redirect URIs". 3) Make sure your app has instagram_basic and pages_show_list permissions.',
|
|
71
|
+
description: 'The App Secret from your Meta Developer Console > App Settings > Basic.',
|
|
70
72
|
},
|
|
71
73
|
{
|
|
72
74
|
displayName: 'Webhook Verify Token',
|
|
@@ -77,6 +79,7 @@ class InstagramOAuth2Api {
|
|
|
77
79
|
required: false,
|
|
78
80
|
description: 'Optional: Custom verification token for webhook setup. Only needed if using Instagram Trigger node.',
|
|
79
81
|
},
|
|
82
|
+
// Hidden fields for long-lived token persistence
|
|
80
83
|
{
|
|
81
84
|
displayName: 'Long-Lived Token',
|
|
82
85
|
name: 'longLivedToken',
|
|
@@ -109,7 +112,7 @@ class InstagramOAuth2Api {
|
|
|
109
112
|
*/
|
|
110
113
|
this.test = {
|
|
111
114
|
request: {
|
|
112
|
-
baseURL: 'https://graph.facebook.com/
|
|
115
|
+
baseURL: 'https://graph.facebook.com/v23.0',
|
|
113
116
|
url: '/me',
|
|
114
117
|
method: 'GET',
|
|
115
118
|
qs: {
|
|
@@ -129,20 +132,22 @@ class InstagramOAuth2Api {
|
|
|
129
132
|
const clientSecret = credentials.clientSecret;
|
|
130
133
|
const oauthTokenData = credentials.oauthTokenData;
|
|
131
134
|
const shortLivedToken = oauthTokenData?.access_token;
|
|
132
|
-
//
|
|
135
|
+
// 1. Check if existing long-lived token is valid
|
|
133
136
|
if (longLivedToken && tokenExpiresAt > 0) {
|
|
134
137
|
const sevenDaysInSeconds = 7 * 24 * 60 * 60;
|
|
138
|
+
// If expiring in > 7 days, return as is
|
|
135
139
|
if (tokenExpiresAt > now + sevenDaysInSeconds) {
|
|
136
140
|
return {};
|
|
137
141
|
}
|
|
138
|
-
//
|
|
139
|
-
|
|
142
|
+
// If nearing expiration (< 7 days), try to refresh
|
|
143
|
+
// Refresh requires token to be > 24 hours old
|
|
144
|
+
const totalLifetime = 60 * 24 * 60 * 60; // 60 days
|
|
140
145
|
const tokenAge = now - (tokenExpiresAt - totalLifetime);
|
|
141
146
|
if (tokenAge >= 24 * 60 * 60) {
|
|
142
147
|
try {
|
|
143
148
|
const refreshed = (await this.helpers.httpRequest({
|
|
144
149
|
method: 'GET',
|
|
145
|
-
url: 'https://graph.facebook.com/
|
|
150
|
+
url: 'https://graph.facebook.com/v23.0/oauth/access_token',
|
|
146
151
|
qs: {
|
|
147
152
|
grant_type: 'fb_exchange_token',
|
|
148
153
|
client_id: clientId,
|
|
@@ -155,20 +160,21 @@ class InstagramOAuth2Api {
|
|
|
155
160
|
tokenExpiresAt: now + refreshed.expires_in,
|
|
156
161
|
};
|
|
157
162
|
}
|
|
158
|
-
catch {
|
|
163
|
+
catch (error) {
|
|
164
|
+
console.warn('Instagram: Failed to refresh long-lived token', error);
|
|
159
165
|
return {};
|
|
160
166
|
}
|
|
161
167
|
}
|
|
162
168
|
return {};
|
|
163
169
|
}
|
|
164
|
-
//
|
|
170
|
+
// 2. Exchange short-lived token for long-lived one
|
|
165
171
|
if (!shortLivedToken) {
|
|
166
172
|
return {};
|
|
167
173
|
}
|
|
168
174
|
try {
|
|
169
175
|
const exchanged = (await this.helpers.httpRequest({
|
|
170
176
|
method: 'GET',
|
|
171
|
-
url: 'https://graph.facebook.com/
|
|
177
|
+
url: 'https://graph.facebook.com/v23.0/oauth/access_token',
|
|
172
178
|
qs: {
|
|
173
179
|
grant_type: 'fb_exchange_token',
|
|
174
180
|
client_id: clientId,
|
|
@@ -181,7 +187,8 @@ class InstagramOAuth2Api {
|
|
|
181
187
|
tokenExpiresAt: now + exchanged.expires_in,
|
|
182
188
|
};
|
|
183
189
|
}
|
|
184
|
-
catch {
|
|
190
|
+
catch (error) {
|
|
191
|
+
console.error('Instagram: Failed to exchange OAuth token for long-lived token', error);
|
|
185
192
|
return {};
|
|
186
193
|
}
|
|
187
194
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstagramOAuth2Api.credentials.js","sourceRoot":"","sources":["../../src/credentials/InstagramOAuth2Api.credentials.ts"],"names":[],"mappings":";;;AAUA,MAAa,kBAAkB;IAA/B;
|
|
1
|
+
{"version":3,"file":"InstagramOAuth2Api.credentials.js","sourceRoot":"","sources":["../../src/credentials/InstagramOAuth2Api.credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InstagramTrigger = void 0;
|
|
4
|
-
const
|
|
4
|
+
const services_1 = require("../../services");
|
|
5
5
|
/**
|
|
6
6
|
* Instagram Trigger Node
|
|
7
7
|
*
|
|
@@ -229,7 +229,7 @@ class InstagramTrigger {
|
|
|
229
229
|
*/
|
|
230
230
|
async webhook() {
|
|
231
231
|
const req = this.getRequestObject();
|
|
232
|
-
const webhookHandler = new
|
|
232
|
+
const webhookHandler = new services_1.WebhookHandler();
|
|
233
233
|
// Handle GET request for webhook verification (Requirement 12.1)
|
|
234
234
|
if (req.method === 'GET') {
|
|
235
235
|
const query = this.getQueryData();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstagramTrigger.node.js","sourceRoot":"","sources":["../../../src/nodes/Instagram/InstagramTrigger.node.ts"],"names":[],"mappings":";;;AAQA,
|
|
1
|
+
{"version":3,"file":"InstagramTrigger.node.js","sourceRoot":"","sources":["../../../src/nodes/Instagram/InstagramTrigger.node.ts"],"names":[],"mappings":";;;AAQA,6CAMwB;AAExB;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,gBAAgB;IAA7B;QACE,gBAAW,GAAyB;YAClC,WAAW,EAAE,mBAAmB;YAChC,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,CAAC,SAAS,CAAC;YAClB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,sCAAsC;YAChD,WAAW,EAAE,iFAAiF;YAC9F,QAAQ,EAAE;gBACR,IAAI,EAAE,mBAAmB;aAC1B;YACD,MAAM,EAAE,EAAE;YACV,wCAAwC;YACxC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;YACzB,WAAW,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;YACnD,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACd,IAAI,EAAE;4BACJ,cAAc,EAAE,CAAC,QAAQ,CAAC;yBAC3B;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,yBAAyB;oBAC/B,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACd,IAAI,EAAE;4BACJ,cAAc,EAAE,CAAC,aAAa,CAAC;yBAChC;qBACF;iBACF;aACF;YACD,wBAAwB;YACxB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,MAAM;oBAClB,YAAY,EAAE,YAAY;oBAC1B,IAAI,EAAE,WAAW;iBAClB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,UAAU,EAAE,KAAK;oBACjB,YAAY,EAAE,YAAY;oBAC1B,IAAI,EAAE,WAAW;iBAClB;aACF;YACD,UAAU,EAAE;gBACV,0BAA0B;gBAC1B;oBACE,WAAW,EAAE,gBAAgB;oBAC7B,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,QAAQ;yBAChB;wBACD;4BACE,IAAI,EAAE,cAAc;4BACpB,KAAK,EAAE,aAAa;yBACrB;qBACF;oBACD,OAAO,EAAE,QAAQ;oBACjB,WAAW,EAAE,8BAA8B;iBAC5C;gBACD,yDAAyD;gBACzD;oBACE,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;wBACX,QAAQ,EAAE,IAAI;qBACf;oBACD,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,4EAA4E;iBAC1F;gBACD,2DAA2D;gBAC3D;oBACE,WAAW,EAAE,cAAc;oBAC3B,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,wGAAwG;iBACtH;gBACD,oBAAoB;gBACpB;oBACE,WAAW,EAAE,kBAAkB;oBAC/B,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,UAAU;4BACjB,WAAW,EAAE,0BAA0B;yBACxC;wBACD;4BACE,IAAI,EAAE,WAAW;4BACjB,KAAK,EAAE,WAAW;4BAClB,WAAW,EAAE,wBAAwB;yBACtC;wBACD;4BACE,IAAI,EAAE,SAAS;4BACf,KAAK,EAAE,QAAQ;4BACf,WAAW,EAAE,oBAAoB;yBAClC;wBACD;4BACE,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,UAAU;4BACjB,WAAW,EAAE,wBAAwB;yBACtC;wBACD;4BACE,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,UAAU;4BACjB,WAAW,EAAE,0BAA0B;yBACxC;qBACF;oBACD,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;oBACpE,WAAW,EAAE,mCAAmC;iBACjD;gBACD,4BAA4B;gBAC5B;oBACE,WAAW,EAAE,oBAAoB;oBACjC,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,+EAA+E;iBAC7F;aACF;SACF,CAAC;QAGF;;WAEG;QACH,mBAAc,GAAG;YACf,OAAO,EAAE;gBACP;;;;;mBAKG;gBACH,KAAK,CAAC,WAAW;oBACf,gEAAgE;oBAChE,8DAA8D;oBAC9D,+EAA+E;oBAC/E,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;oBAErD,yCAAyC;oBACzC,OAAO,CAAC,GAAG,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;oBAE5D,uDAAuD;oBACvD,6EAA6E;oBAC7E,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED;;;;mBAIG;gBACH,KAAK,CAAC,MAAM;oBACV,uDAAuD;oBACvD,yEAAyE;oBACzE,+BAA+B;oBAC/B,iDAAiD;oBACjD,2DAA2D;oBAC3D,2FAA2F;oBAE3F,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;oBACrD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAW,CAAC;oBAEnE,mCAAmC;oBACnC,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;oBACvD,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC;oBACpC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;oBACtC,WAAW,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBAEjD,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED;;;;mBAIG;gBACH,KAAK,CAAC,MAAM;oBACV,4BAA4B;oBAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;oBACvD,OAAO,WAAW,CAAC,UAAU,CAAC;oBAC9B,OAAO,WAAW,CAAC,WAAW,CAAC;oBAC/B,OAAO,WAAW,CAAC,SAAS,CAAC;oBAE7B,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC;IA0GJ,CAAC;IAxGC;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,cAAc,GAAG,IAAI,yBAAc,EAAE,CAAC;QAE5C,iEAAiE;QACjE,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAkB,CAAC;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAW,CAAC;YAEnE,MAAM,SAAS,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAEnE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,+CAA+C;gBAC/C,OAAO;oBACL,eAAe,EAAE,SAAS;iBAC3B,CAAC;YACJ,CAAC;YAED,sBAAsB;YACtB,OAAO;gBACL,eAAe,EAAE,qBAAqB;gBACtC,iBAAiB,EAAE,IAAI;aACxB,CAAC;QACJ,CAAC;QAED,yCAAyC;QACzC,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAY,CAAC;QACtF,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAW,CAAC;QAE/D,0DAA0D;QAC1D,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,qBAAqB,CAAW,CAAC;YACxE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAEnD,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;gBACrE,gDAAgD;gBAChD,OAAO;oBACL,eAAe,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;oBAC/C,iBAAiB,EAAE,IAAI;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAA6B,CAAC;QAE3D,qCAAqC;QACrC,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO;gBACL,eAAe,EAAE,IAAI;gBACrB,iBAAiB,EAAE,IAAI;aACxB,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAEvF,4BAA4B;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAa,CAAC;QAE/H,4CAA4C;QAC5C,MAAM,uBAAuB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,KAA2B,EAAE,EAAE;YACrF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO,IAAI,CAAC;YAChF,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAE,OAAO,IAAI,CAAC;YAClF,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC5E,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,0CAA0C;QAC1C,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAyB,EAAE,EAAE;YAC/E,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO,IAAI,CAAC;YAChF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO,IAAI,CAAC;YAChF,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,gDAAgD;QAChD,MAAM,eAAe,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,KAA2B,EAAE,EAAE,CAAC,CAAC;YACpF,IAAI,EAAE,KAA+B;SACtC,CAAC,CAAC,CAAC;QAEJ,8CAA8C;QAC9C,MAAM,aAAa,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,KAAyB,EAAE,EAAE,CAAC,CAAC;YAC9E,IAAI,EAAE,KAA+B;SACtC,CAAC,CAAC,CAAC;QAEJ,sDAAsD;QACtD,OAAO;YACL,YAAY,EAAE;gBACZ,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;gBACjD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;aAC9C;SACF,CAAC;IACJ,CAAC;CACF;AArTD,4CAqTC"}
|
|
@@ -129,7 +129,7 @@ export declare class InstagramApiError extends Error {
|
|
|
129
129
|
toJSON(): IInstagramError;
|
|
130
130
|
}
|
|
131
131
|
export declare class InstagramApiClient {
|
|
132
|
-
protected readonly baseUrl = "https://graph.facebook.com/
|
|
132
|
+
protected readonly baseUrl = "https://graph.facebook.com/v23.0";
|
|
133
133
|
protected readonly accessToken: string;
|
|
134
134
|
protected readonly accountId: string;
|
|
135
135
|
constructor(accessToken: string, accountId: string);
|
|
@@ -34,7 +34,7 @@ class InstagramApiError extends Error {
|
|
|
34
34
|
exports.InstagramApiError = InstagramApiError;
|
|
35
35
|
class InstagramApiClient {
|
|
36
36
|
constructor(accessToken, accountId) {
|
|
37
|
-
this.baseUrl = 'https://graph.facebook.com/
|
|
37
|
+
this.baseUrl = 'https://graph.facebook.com/v23.0';
|
|
38
38
|
this.accessToken = accessToken;
|
|
39
39
|
this.accountId = accountId;
|
|
40
40
|
}
|
|
@@ -100,7 +100,7 @@ async function getInstagramBusinessAccountId() {
|
|
|
100
100
|
try {
|
|
101
101
|
const directResponse = (await this.helpers.request({
|
|
102
102
|
method: 'GET',
|
|
103
|
-
url: 'https://graph.instagram.com/
|
|
103
|
+
url: 'https://graph.instagram.com/v23.0/me',
|
|
104
104
|
qs: {
|
|
105
105
|
fields: 'id,username',
|
|
106
106
|
access_token: accessToken,
|
|
@@ -117,7 +117,7 @@ async function getInstagramBusinessAccountId() {
|
|
|
117
117
|
// Get pages connected to the user via Facebook Graph API
|
|
118
118
|
const pagesResponse = (await this.helpers.request({
|
|
119
119
|
method: 'GET',
|
|
120
|
-
url: 'https://graph.facebook.com/
|
|
120
|
+
url: 'https://graph.facebook.com/v23.0/me/accounts',
|
|
121
121
|
qs: {
|
|
122
122
|
fields: 'instagram_business_account{id,username},id,name',
|
|
123
123
|
access_token: accessToken,
|
|
@@ -163,7 +163,7 @@ async function instagramApiRequest(method, endpoint, body = {}, qs = {}) {
|
|
|
163
163
|
access_token: accessToken,
|
|
164
164
|
},
|
|
165
165
|
// Use Facebook Graph API for Instagram Business accounts
|
|
166
|
-
url: `https://graph.facebook.com/
|
|
166
|
+
url: `https://graph.facebook.com/v23.0${endpoint}`,
|
|
167
167
|
json: true,
|
|
168
168
|
};
|
|
169
169
|
if (Object.keys(body).length === 0) {
|
|
@@ -146,5 +146,5 @@ class TokenManager {
|
|
|
146
146
|
exports.TokenManager = TokenManager;
|
|
147
147
|
TokenManager.REFRESH_THRESHOLD_DAYS = 7;
|
|
148
148
|
TokenManager.MIN_TOKEN_AGE_HOURS = 24;
|
|
149
|
-
TokenManager.GRAPH_API_VERSION = '
|
|
149
|
+
TokenManager.GRAPH_API_VERSION = 'v23.0';
|
|
150
150
|
//# sourceMappingURL=TokenManager.js.map
|