n8n-nodes-wecom 0.3.12 → 0.3.13

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-wecom",
3
- "version": "0.3.12",
3
+ "version": "0.3.13",
4
4
  "description": "Complete n8n integration for WeCom (企业微信/WeChat Work). Send messages, manage contacts, departments, customer relations, meetings, documents, email, calendar, approvals, and more. Full-featured enterprise WeChat automation node.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/funcodingdev/n8n-nodes-wecom",
@@ -57,7 +57,6 @@
57
57
  "dist/nodes/WeComBase/WeComBase.node.js",
58
58
  "dist/nodes/WeComOffice/WeComOffice.node.js",
59
59
  "dist/nodes/WeComPassiveTrigger/WeComPassiveTrigger.node.js",
60
- "dist/nodes/WeComPassiveTrigger/WeComReply.node.js",
61
60
  "dist/nodes/WeComTrigger/WeComTrigger.node.js",
62
61
  "dist/nodes/WeComWechat/WeComWechat.node.js"
63
62
  ]
@@ -1,5 +0,0 @@
1
- import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
- export declare class WeComReply implements INodeType {
3
- description: INodeTypeDescription;
4
- execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
- }
@@ -1,269 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WeComReply = void 0;
4
- const n8n_workflow_1 = require("n8n-workflow");
5
- const crypto_1 = require("../WeCom/shared/crypto");
6
- class WeComReply {
7
- constructor() {
8
- this.description = {
9
- displayName: '企业微信被动回复',
10
- name: 'weComReply',
11
- icon: { light: 'file:../../icons/wecom.png', dark: 'file:../../icons/wecom.dark.png' },
12
- group: ['transform'],
13
- version: 1,
14
- subtitle: '={{$parameter.replyType}}',
15
- description: '被动回复企业微信消息(需配合「企业微信消息接收(被动回复)Trigger」使用)',
16
- defaults: {
17
- name: '企业微信被动回复',
18
- },
19
- inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
20
- outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
21
- properties: [
22
- {
23
- displayName: '回复消息类型',
24
- name: 'replyType',
25
- type: 'options',
26
- options: [
27
- {
28
- name: '文本消息',
29
- value: 'text',
30
- description: '回复文本消息',
31
- },
32
- {
33
- name: '图片消息',
34
- value: 'image',
35
- description: '回复图片消息',
36
- },
37
- {
38
- name: '语音消息',
39
- value: 'voice',
40
- description: '回复语音消息',
41
- },
42
- {
43
- name: '视频消息',
44
- value: 'video',
45
- description: '回复视频消息',
46
- },
47
- {
48
- name: '图文消息',
49
- value: 'news',
50
- description: '回复图文消息',
51
- },
52
- ],
53
- default: 'text',
54
- description: '被动回复的消息类型',
55
- },
56
- {
57
- displayName: '文本内容',
58
- name: 'textContent',
59
- type: 'string',
60
- typeOptions: {
61
- rows: 4,
62
- },
63
- displayOptions: {
64
- show: {
65
- replyType: ['text'],
66
- },
67
- },
68
- default: '',
69
- required: true,
70
- description: '回复的文本内容',
71
- placeholder: '感谢您的消息!',
72
- },
73
- {
74
- displayName: '媒体ID',
75
- name: 'mediaId',
76
- type: 'string',
77
- displayOptions: {
78
- show: {
79
- replyType: ['image', 'voice', 'video'],
80
- },
81
- },
82
- default: '',
83
- required: true,
84
- description: '媒体文件ID(需先通过素材管理接口上传获得)',
85
- hint: '可以使用表达式从前面节点获取,如:{{$json.media_id}}',
86
- },
87
- {
88
- displayName: '视频标题',
89
- name: 'videoTitle',
90
- type: 'string',
91
- displayOptions: {
92
- show: {
93
- replyType: ['video'],
94
- },
95
- },
96
- default: '',
97
- description: '视频标题(可选)',
98
- },
99
- {
100
- displayName: '视频描述',
101
- name: 'videoDescription',
102
- type: 'string',
103
- typeOptions: {
104
- rows: 2,
105
- },
106
- displayOptions: {
107
- show: {
108
- replyType: ['video'],
109
- },
110
- },
111
- default: '',
112
- description: '视频描述(可选)',
113
- },
114
- {
115
- displayName: '图文消息',
116
- name: 'articles',
117
- type: 'fixedCollection',
118
- typeOptions: {
119
- multipleValues: true,
120
- },
121
- displayOptions: {
122
- show: {
123
- replyType: ['news'],
124
- },
125
- },
126
- default: {},
127
- placeholder: '添加图文',
128
- options: [
129
- {
130
- name: 'article',
131
- displayName: '图文',
132
- values: [
133
- {
134
- displayName: '标题',
135
- name: 'title',
136
- type: 'string',
137
- default: '',
138
- required: true,
139
- description: '图文标题',
140
- },
141
- {
142
- displayName: '描述',
143
- name: 'description',
144
- type: 'string',
145
- typeOptions: {
146
- rows: 2,
147
- },
148
- default: '',
149
- description: '图文描述',
150
- },
151
- {
152
- displayName: '链接',
153
- name: 'url',
154
- type: 'string',
155
- default: '',
156
- required: true,
157
- description: '点击后跳转的链接',
158
- },
159
- {
160
- displayName: '封面图片链接',
161
- name: 'picUrl',
162
- type: 'string',
163
- default: '',
164
- description: '图文封面图片URL',
165
- },
166
- ],
167
- },
168
- ],
169
- description: '图文消息列表',
170
- },
171
- ],
172
- };
173
- }
174
- async execute() {
175
- const items = this.getInputData();
176
- const returnData = [];
177
- for (let i = 0; i < items.length; i++) {
178
- try {
179
- const item = items[i];
180
- const wecomCrypto = item.json._wecomCrypto;
181
- if (!wecomCrypto || !wecomCrypto.token || !wecomCrypto.encodingAESKey || !wecomCrypto.corpId) {
182
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), '缺少企业微信加密信息,请确保此节点连接到「企业微信消息接收(被动回复)Trigger」节点之后');
183
- }
184
- const fromUserName = item.json.FromUserName;
185
- const toUserName = item.json.ToUserName;
186
- if (!fromUserName || !toUserName) {
187
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), '缺少消息发送者或接收者信息,请确保输入数据来自「企业微信消息接收(被动回复)Trigger」');
188
- }
189
- const replyType = this.getNodeParameter('replyType', i);
190
- let replyContent = {};
191
- switch (replyType) {
192
- case 'text': {
193
- const textContent = this.getNodeParameter('textContent', i);
194
- if (!textContent) {
195
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), '文本内容不能为空');
196
- }
197
- replyContent = { Content: textContent };
198
- break;
199
- }
200
- case 'image':
201
- case 'voice':
202
- case 'video': {
203
- const mediaId = this.getNodeParameter('mediaId', i);
204
- if (!mediaId) {
205
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), '媒体ID不能为空');
206
- }
207
- replyContent = { MediaId: mediaId };
208
- if (replyType === 'video') {
209
- const videoTitle = this.getNodeParameter('videoTitle', i, '');
210
- const videoDescription = this.getNodeParameter('videoDescription', i, '');
211
- if (videoTitle)
212
- replyContent.Title = videoTitle;
213
- if (videoDescription)
214
- replyContent.Description = videoDescription;
215
- }
216
- break;
217
- }
218
- case 'news': {
219
- const articlesData = this.getNodeParameter('articles', i);
220
- const articles = articlesData.article || [];
221
- if (articles.length === 0) {
222
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), '至少需要添加一篇图文消息');
223
- }
224
- const formattedArticles = articles.map(article => ({
225
- Title: article.title,
226
- Description: article.description || '',
227
- Url: article.url,
228
- PicUrl: article.picUrl || '',
229
- }));
230
- replyContent = { Articles: formattedArticles };
231
- break;
232
- }
233
- }
234
- const crypto = new crypto_1.WeComCrypto(wecomCrypto.encodingAESKey, wecomCrypto.corpId);
235
- const replyMessageXML = (0, crypto_1.generateReplyMessageXML)(fromUserName, toUserName, replyType, replyContent);
236
- const encryptedResponseXML = (0, crypto_1.generateEncryptedResponseXML)(crypto, wecomCrypto.token, replyMessageXML, this.getNode());
237
- this.sendResponse({
238
- body: encryptedResponseXML,
239
- headers: {
240
- 'Content-Type': 'application/xml; charset=utf-8',
241
- },
242
- statusCode: 200,
243
- });
244
- returnData.push({
245
- json: {
246
- success: true,
247
- replyType,
248
- message: '已成功发送被动回复',
249
- },
250
- });
251
- }
252
- catch (error) {
253
- if (this.continueOnFail()) {
254
- returnData.push({
255
- json: {
256
- error: error.message,
257
- },
258
- pairedItem: i,
259
- });
260
- continue;
261
- }
262
- throw error;
263
- }
264
- }
265
- return [returnData];
266
- }
267
- }
268
- exports.WeComReply = WeComReply;
269
- //# sourceMappingURL=WeComReply.node.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WeComReply.node.js","sourceRoot":"","sources":["../../../nodes/WeComPassiveTrigger/WeComReply.node.ts"],"names":[],"mappings":"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"}