n8n-nodes-nashir 0.2.1 → 0.2.2
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
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# n8n-nodes-nashir
|
|
2
|
+
|
|
3
|
+
n8n community nodes for [nashir.ai](https://nashir.ai) — publish to Facebook, Instagram, TikTok, LinkedIn, YouTube, WhatsApp and Telegram.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
In your n8n instance, go to **Settings → Community Nodes → Install** and enter:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
n8n-nodes-nashir
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Nodes
|
|
14
|
+
|
|
15
|
+
- **Nashir Facebook** — Publish posts and reels
|
|
16
|
+
- **Nashir Instagram** — Publish feed posts, reels, and stories
|
|
17
|
+
- **Nashir TikTok** — Publish video and photo posts (Direct Post API)
|
|
18
|
+
- **Nashir LinkedIn** — Publish posts and articles
|
|
19
|
+
- **Nashir YouTube** — Upload and schedule videos
|
|
20
|
+
- **Nashir WhatsApp** — Send messages via WhatsApp Business
|
|
21
|
+
- **Nashir Telegram** — Send messages and media to Telegram channels/groups
|
|
22
|
+
|
|
23
|
+
## Credentials
|
|
24
|
+
|
|
25
|
+
Create a **Nashir API** credential with your API key from [nashir.ai/settings](https://nashir.ai/settings).
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Changelog
|
|
30
|
+
|
|
31
|
+
### 0.2.2 — Apr 2026
|
|
32
|
+
|
|
33
|
+
**TikTok node — full Direct Post API compliance update**
|
|
34
|
+
|
|
35
|
+
- `privacy_level` now required field with 3 options: Public to Everyone, Friends Only, Only Me
|
|
36
|
+
- Interactions renamed to "Allow Comments / Allow Duet / Allow Stitch" (all default `false` per TikTok guidelines) — mapped to `disable_comment / disable_duet / disable_stitch` in the API
|
|
37
|
+
- `brand_content_toggle` renamed to **Content Disclosure** in UI
|
|
38
|
+
- `brand_organic_toggle` (Your Brand) and `brand_branded_content_toggle` (Branded Content / Paid Partnership) shown conditionally when Content Disclosure is enabled
|
|
39
|
+
- Removed `FOLLOWER_OF_CREATOR` privacy option (not supported by Direct Post API)
|
|
40
|
+
- Node description updated: "Privacy Level is required. Interactions are off by default per TikTok guidelines. Content Disclosure must have at least one option selected if enabled."
|
|
41
|
+
- All fields map directly to nashir.ai `tiktok_options` object
|
|
42
|
+
- Prepared for TikTok Direct Post API audit approval
|
|
43
|
+
|
|
44
|
+
### 0.2.1 — Mar 2026
|
|
45
|
+
|
|
46
|
+
- TikTok node: add `brand_content_toggle`, `brand_organic_toggle`, `brand_branded_content_toggle`
|
|
47
|
+
- TikTok node: carousel support via comma-separated image URLs
|
|
48
|
+
- YouTube node: `madeForKids`, `tags`, `category`, `license`, `notifySubscribers`, `comments` fields
|
|
49
|
+
|
|
50
|
+
### 0.2.0 — Feb 2026
|
|
51
|
+
|
|
52
|
+
- Initial release: Facebook, Instagram, TikTok, LinkedIn, YouTube, WhatsApp, Telegram nodes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NashirTikTok.node.d.ts","sourceRoot":"","sources":["../../../nodes/NashirTikTok/NashirTikTok.node.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EACpB,MAAM,cAAc,CAAC;AAItB,qBAAa,YAAa,YAAW,SAAS;IAC7C,WAAW,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"NashirTikTok.node.d.ts","sourceRoot":"","sources":["../../../nodes/NashirTikTok/NashirTikTok.node.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EACpB,MAAM,cAAc,CAAC;AAItB,qBAAa,YAAa,YAAW,SAAS;IAC7C,WAAW,EAAE,oBAAoB,CAiL/B;IAEF,OAAO;;qCAE0B,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;;MAItF;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAoFvE"}
|
|
@@ -11,7 +11,9 @@ class NashirTikTok {
|
|
|
11
11
|
group: ['transform'],
|
|
12
12
|
version: 1,
|
|
13
13
|
subtitle: '={{$parameter["operation"]}}',
|
|
14
|
-
description: 'Publish and manage TikTok posts (video & photo) via nashir.ai'
|
|
14
|
+
description: 'Publish and manage TikTok posts (video & photo) via nashir.ai. ' +
|
|
15
|
+
'Privacy Level is required. Interactions are off by default per TikTok guidelines. ' +
|
|
16
|
+
'Content Disclosure must have at least one option selected if enabled.',
|
|
15
17
|
defaults: { name: 'Nashir TikTok', color: '#000000' },
|
|
16
18
|
inputs: ['main'],
|
|
17
19
|
outputs: ['main'],
|
|
@@ -67,9 +69,8 @@ class NashirTikTok {
|
|
|
67
69
|
type: 'options',
|
|
68
70
|
options: [
|
|
69
71
|
{ name: 'Public to Everyone', value: 'PUBLIC_TO_EVERYONE' },
|
|
70
|
-
{ name: '
|
|
71
|
-
{ name: '
|
|
72
|
-
{ name: 'Self Only', value: 'SELF_ONLY' },
|
|
72
|
+
{ name: 'Friends Only', value: 'MUTUAL_FOLLOW_FRIENDS' },
|
|
73
|
+
{ name: 'Only Me', value: 'SELF_ONLY' },
|
|
73
74
|
],
|
|
74
75
|
default: 'PUBLIC_TO_EVERYONE',
|
|
75
76
|
required: true,
|
|
@@ -77,31 +78,32 @@ class NashirTikTok {
|
|
|
77
78
|
},
|
|
78
79
|
// ── Interactions ─────────────────────────────────────────────────────
|
|
79
80
|
{
|
|
80
|
-
displayName: '
|
|
81
|
-
name: '
|
|
81
|
+
displayName: 'Allow Comments',
|
|
82
|
+
name: 'allow_comment',
|
|
82
83
|
type: 'boolean',
|
|
83
84
|
default: false,
|
|
85
|
+
description: 'Whether to allow viewers to comment on this post',
|
|
84
86
|
displayOptions: { show: { operation: ['publishVideo', 'scheduleVideo'] } },
|
|
85
87
|
},
|
|
86
88
|
{
|
|
87
|
-
displayName: '
|
|
88
|
-
name: '
|
|
89
|
+
displayName: 'Allow Duet',
|
|
90
|
+
name: 'allow_duet',
|
|
89
91
|
type: 'boolean',
|
|
90
92
|
default: false,
|
|
91
|
-
description: '
|
|
93
|
+
description: 'Whether to allow Duet — video posts only, ignored for photo posts',
|
|
92
94
|
displayOptions: { show: { operation: ['publishVideo', 'scheduleVideo'] } },
|
|
93
95
|
},
|
|
94
96
|
{
|
|
95
|
-
displayName: '
|
|
96
|
-
name: '
|
|
97
|
+
displayName: 'Allow Stitch',
|
|
98
|
+
name: 'allow_stitch',
|
|
97
99
|
type: 'boolean',
|
|
98
100
|
default: false,
|
|
99
|
-
description: '
|
|
101
|
+
description: 'Whether to allow Stitch — video posts only, ignored for photo posts',
|
|
100
102
|
displayOptions: { show: { operation: ['publishVideo', 'scheduleVideo'] } },
|
|
101
103
|
},
|
|
102
104
|
// ── Brand / commercial content ────────────────────────────────────────
|
|
103
105
|
{
|
|
104
|
-
displayName: '
|
|
106
|
+
displayName: 'Content Disclosure',
|
|
105
107
|
name: 'brand_content_toggle',
|
|
106
108
|
type: 'boolean',
|
|
107
109
|
default: false,
|
|
@@ -126,7 +128,7 @@ class NashirTikTok {
|
|
|
126
128
|
name: 'brand_branded_content_toggle',
|
|
127
129
|
type: 'boolean',
|
|
128
130
|
default: false,
|
|
129
|
-
description:
|
|
131
|
+
description: "You are promoting another brand's product or service (paid partnership)",
|
|
130
132
|
displayOptions: {
|
|
131
133
|
show: {
|
|
132
134
|
operation: ['publishVideo', 'scheduleVideo'],
|
|
@@ -185,9 +187,9 @@ class NashirTikTok {
|
|
|
185
187
|
const binaryProp = this.getNodeParameter('binaryPropertyName', i, 'data');
|
|
186
188
|
const caption = this.getNodeParameter('caption', i, '');
|
|
187
189
|
const privacy_level = this.getNodeParameter('privacy_level', i);
|
|
188
|
-
const
|
|
189
|
-
const
|
|
190
|
-
const
|
|
190
|
+
const allow_comment = this.getNodeParameter('allow_comment', i, false);
|
|
191
|
+
const allow_duet = this.getNodeParameter('allow_duet', i, false);
|
|
192
|
+
const allow_stitch = this.getNodeParameter('allow_stitch', i, false);
|
|
191
193
|
const brand_content_toggle = this.getNodeParameter('brand_content_toggle', i, false);
|
|
192
194
|
const brand_organic_toggle = brand_content_toggle
|
|
193
195
|
? this.getNodeParameter('brand_organic_toggle', i, false)
|
|
@@ -213,9 +215,9 @@ class NashirTikTok {
|
|
|
213
215
|
publish_now: operation === 'publishVideo',
|
|
214
216
|
tiktok_options: {
|
|
215
217
|
privacy_level,
|
|
216
|
-
disable_comment,
|
|
217
|
-
disable_duet: media_type === 'VIDEO' ?
|
|
218
|
-
disable_stitch: media_type === 'VIDEO' ?
|
|
218
|
+
disable_comment: !allow_comment,
|
|
219
|
+
disable_duet: media_type === 'VIDEO' ? !allow_duet : false,
|
|
220
|
+
disable_stitch: media_type === 'VIDEO' ? !allow_stitch : false,
|
|
219
221
|
brand_content_toggle,
|
|
220
222
|
brand_organic_toggle,
|
|
221
223
|
brand_branded_content_toggle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NashirTikTok.node.js","sourceRoot":"","sources":["../../../nodes/NashirTikTok/NashirTikTok.node.ts"],"names":[],"mappings":";;;AAUA,uCAAmF;AAEnF,MAAa,YAAY;IAAzB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,eAAe;YAC5B,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8BAA8B;YACxC,WAAW,
|
|
1
|
+
{"version":3,"file":"NashirTikTok.node.js","sourceRoot":"","sources":["../../../nodes/NashirTikTok/NashirTikTok.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,10 @@ export class NashirTikTok implements INodeType {
|
|
|
18
18
|
group: ['transform'],
|
|
19
19
|
version: 1,
|
|
20
20
|
subtitle: '={{$parameter["operation"]}}',
|
|
21
|
-
description:
|
|
21
|
+
description:
|
|
22
|
+
'Publish and manage TikTok posts (video & photo) via nashir.ai. ' +
|
|
23
|
+
'Privacy Level is required. Interactions are off by default per TikTok guidelines. ' +
|
|
24
|
+
'Content Disclosure must have at least one option selected if enabled.',
|
|
22
25
|
defaults: { name: 'Nashir TikTok', color: '#000000' },
|
|
23
26
|
inputs: ['main'],
|
|
24
27
|
outputs: ['main'],
|
|
@@ -78,10 +81,9 @@ export class NashirTikTok implements INodeType {
|
|
|
78
81
|
name: 'privacy_level',
|
|
79
82
|
type: 'options',
|
|
80
83
|
options: [
|
|
81
|
-
{ name: 'Public to Everyone',
|
|
82
|
-
{ name: '
|
|
83
|
-
{ name: '
|
|
84
|
-
{ name: 'Self Only', value: 'SELF_ONLY' },
|
|
84
|
+
{ name: 'Public to Everyone', value: 'PUBLIC_TO_EVERYONE' },
|
|
85
|
+
{ name: 'Friends Only', value: 'MUTUAL_FOLLOW_FRIENDS' },
|
|
86
|
+
{ name: 'Only Me', value: 'SELF_ONLY' },
|
|
85
87
|
],
|
|
86
88
|
default: 'PUBLIC_TO_EVERYONE',
|
|
87
89
|
required: true,
|
|
@@ -90,34 +92,35 @@ export class NashirTikTok implements INodeType {
|
|
|
90
92
|
|
|
91
93
|
// ── Interactions ─────────────────────────────────────────────────────
|
|
92
94
|
{
|
|
93
|
-
displayName: '
|
|
94
|
-
name: '
|
|
95
|
+
displayName: 'Allow Comments',
|
|
96
|
+
name: 'allow_comment',
|
|
95
97
|
type: 'boolean',
|
|
96
98
|
default: false,
|
|
99
|
+
description: 'Whether to allow viewers to comment on this post',
|
|
97
100
|
displayOptions: { show: { operation: ['publishVideo', 'scheduleVideo'] } },
|
|
98
101
|
},
|
|
99
102
|
|
|
100
103
|
{
|
|
101
|
-
displayName: '
|
|
102
|
-
name: '
|
|
104
|
+
displayName: 'Allow Duet',
|
|
105
|
+
name: 'allow_duet',
|
|
103
106
|
type: 'boolean',
|
|
104
107
|
default: false,
|
|
105
|
-
description: '
|
|
108
|
+
description: 'Whether to allow Duet — video posts only, ignored for photo posts',
|
|
106
109
|
displayOptions: { show: { operation: ['publishVideo', 'scheduleVideo'] } },
|
|
107
110
|
},
|
|
108
111
|
|
|
109
112
|
{
|
|
110
|
-
displayName: '
|
|
111
|
-
name: '
|
|
113
|
+
displayName: 'Allow Stitch',
|
|
114
|
+
name: 'allow_stitch',
|
|
112
115
|
type: 'boolean',
|
|
113
116
|
default: false,
|
|
114
|
-
description: '
|
|
117
|
+
description: 'Whether to allow Stitch — video posts only, ignored for photo posts',
|
|
115
118
|
displayOptions: { show: { operation: ['publishVideo', 'scheduleVideo'] } },
|
|
116
119
|
},
|
|
117
120
|
|
|
118
121
|
// ── Brand / commercial content ────────────────────────────────────────
|
|
119
122
|
{
|
|
120
|
-
displayName: '
|
|
123
|
+
displayName: 'Content Disclosure',
|
|
121
124
|
name: 'brand_content_toggle',
|
|
122
125
|
type: 'boolean',
|
|
123
126
|
default: false,
|
|
@@ -144,7 +147,7 @@ export class NashirTikTok implements INodeType {
|
|
|
144
147
|
name: 'brand_branded_content_toggle',
|
|
145
148
|
type: 'boolean',
|
|
146
149
|
default: false,
|
|
147
|
-
description:
|
|
150
|
+
description: "You are promoting another brand's product or service (paid partnership)",
|
|
148
151
|
displayOptions: {
|
|
149
152
|
show: {
|
|
150
153
|
operation: ['publishVideo', 'scheduleVideo'],
|
|
@@ -205,21 +208,21 @@ export class NashirTikTok implements INodeType {
|
|
|
205
208
|
let responseData: IDataObject | IDataObject[];
|
|
206
209
|
|
|
207
210
|
if (operation === 'publishVideo' || operation === 'scheduleVideo') {
|
|
208
|
-
const accountId
|
|
209
|
-
const binaryProp
|
|
210
|
-
const caption
|
|
211
|
-
const privacy_level
|
|
212
|
-
const
|
|
213
|
-
const
|
|
214
|
-
const
|
|
215
|
-
const brand_content_toggle
|
|
216
|
-
const brand_organic_toggle
|
|
211
|
+
const accountId = this.getNodeParameter('account', i) as string;
|
|
212
|
+
const binaryProp = this.getNodeParameter('binaryPropertyName', i, 'data') as string;
|
|
213
|
+
const caption = this.getNodeParameter('caption', i, '') as string;
|
|
214
|
+
const privacy_level = this.getNodeParameter('privacy_level', i) as string;
|
|
215
|
+
const allow_comment = this.getNodeParameter('allow_comment', i, false) as boolean;
|
|
216
|
+
const allow_duet = this.getNodeParameter('allow_duet', i, false) as boolean;
|
|
217
|
+
const allow_stitch = this.getNodeParameter('allow_stitch', i, false) as boolean;
|
|
218
|
+
const brand_content_toggle = this.getNodeParameter('brand_content_toggle', i, false) as boolean;
|
|
219
|
+
const brand_organic_toggle = brand_content_toggle
|
|
217
220
|
? (this.getNodeParameter('brand_organic_toggle', i, false) as boolean)
|
|
218
221
|
: false;
|
|
219
222
|
const brand_branded_content_toggle = brand_content_toggle
|
|
220
223
|
? (this.getNodeParameter('brand_branded_content_toggle', i, false) as boolean)
|
|
221
224
|
: false;
|
|
222
|
-
const carousel_images_raw
|
|
225
|
+
const carousel_images_raw = this.getNodeParameter('carousel_images', i, '') as string;
|
|
223
226
|
|
|
224
227
|
// Upload binary and auto-detect media type from mimeType
|
|
225
228
|
const binaryData = this.helpers.assertBinaryData(i, binaryProp);
|
|
@@ -241,9 +244,9 @@ export class NashirTikTok implements INodeType {
|
|
|
241
244
|
publish_now: operation === 'publishVideo',
|
|
242
245
|
tiktok_options: {
|
|
243
246
|
privacy_level,
|
|
244
|
-
disable_comment,
|
|
245
|
-
disable_duet:
|
|
246
|
-
disable_stitch:
|
|
247
|
+
disable_comment: !allow_comment,
|
|
248
|
+
disable_duet: media_type === 'VIDEO' ? !allow_duet : false,
|
|
249
|
+
disable_stitch: media_type === 'VIDEO' ? !allow_stitch : false,
|
|
247
250
|
brand_content_toggle,
|
|
248
251
|
brand_organic_toggle,
|
|
249
252
|
brand_branded_content_toggle,
|
package/package.json
CHANGED