@andrey4emk/npm-app-back-b24 0.5.36 → 0.6.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/package.json +1 -1
- package/sendMessage/wappi.js +90 -4
package/package.json
CHANGED
package/sendMessage/wappi.js
CHANGED
|
@@ -119,13 +119,32 @@ export class Wappi {
|
|
|
119
119
|
url = ``;
|
|
120
120
|
}
|
|
121
121
|
if (messangerType === "telegram") {
|
|
122
|
-
|
|
122
|
+
// 1 Проверяем существует контакт или нет.
|
|
123
|
+
let contactCheck = await this.getContactTelegramWappi(phone);
|
|
124
|
+
|
|
125
|
+
// 2 Если существует, то номер в телеге есть, можем отправлять сообщение
|
|
126
|
+
if (!contactCheck.error && contactCheck.data.haveContact) {
|
|
127
|
+
contactCheck.data.check = true;
|
|
128
|
+
return { error: false, message: `Номер ${phone} проверен для мессенджера ${messangerType}`, data: contactCheck.data };
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// 3 Если не существует, то номера в телеге нет, пробуем создать
|
|
132
|
+
let addContactResult = await this.addContactTelegramWappi(phone);
|
|
133
|
+
|
|
134
|
+
if (!addContactResult.error) {
|
|
135
|
+
// Если получается создать, отправляем информацию
|
|
136
|
+
addContactResult.data.check = true;
|
|
137
|
+
return { error: false, message: `Номер ${phone} успешно добавлен и проверен для мессенджера ${messangerType}`, data: addContactResult.data };
|
|
138
|
+
} else {
|
|
139
|
+
// Если не получается, то отправляем информацию об ошибке
|
|
140
|
+
return { error: true, message: `Не удалось проверить и добавить номер ${phone} в Telegram: ${addContactResult.message}`, data: addContactResult.data };
|
|
141
|
+
}
|
|
123
142
|
}
|
|
124
143
|
if (messangerType === "max") {
|
|
125
|
-
url = `https://wappi.pro/maxapi/sync/contact/check`;
|
|
144
|
+
url = `https://wappi.pro/maxapi/sync/contact/check?profile_id=${this.profile_id}&phone=${phone}`;
|
|
126
145
|
}
|
|
127
|
-
let res = await fetch(url
|
|
128
|
-
method: "
|
|
146
|
+
let res = await fetch(url, {
|
|
147
|
+
method: "GET",
|
|
129
148
|
headers: {
|
|
130
149
|
"Content-Type": "application/json",
|
|
131
150
|
Authorization: this.token,
|
|
@@ -143,4 +162,71 @@ export class Wappi {
|
|
|
143
162
|
return { error: false, message: `Номер ${phone} проверен для мессенджера ${messangerType}`, data: data };
|
|
144
163
|
}
|
|
145
164
|
}
|
|
165
|
+
async getContactTelegramWappi(phone) {
|
|
166
|
+
if (!phone) {
|
|
167
|
+
return { error: true, message: "Отсутствует phone", data: null };
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
let url = `https://wappi.pro/tapi/sync/contact/get?profile_id=${this.profile_id}&phone=${phone}`;
|
|
171
|
+
|
|
172
|
+
try {
|
|
173
|
+
let res = await fetch(url, {
|
|
174
|
+
method: "GET",
|
|
175
|
+
headers: {
|
|
176
|
+
"Content-Type": "application/json",
|
|
177
|
+
Authorization: this.token,
|
|
178
|
+
},
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
let data = await res.json();
|
|
182
|
+
|
|
183
|
+
if (data.status !== "done") {
|
|
184
|
+
return { error: true, message: `Ошибка получения контакта ${phone} из Telegram`, data: data };
|
|
185
|
+
} else {
|
|
186
|
+
// Проверяем найден ли контакт
|
|
187
|
+
data.haveContact = data.contact ? true : false;
|
|
188
|
+
|
|
189
|
+
return { error: false, message: `Контакт ${phone} получен из Telegram`, data: data };
|
|
190
|
+
}
|
|
191
|
+
} catch (error) {
|
|
192
|
+
return { error: true, message: `Ошибка при запросе контакта: ${error.message}`, data: null };
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
async addContactTelegramWappi(phone) {
|
|
197
|
+
if (!phone) {
|
|
198
|
+
return { error: true, message: "Отсутствует phone", data: null };
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// Генерируем случайную строку из четырех символов
|
|
202
|
+
const randomString = Math.random().toString(36).substring(2, 6).toUpperCase();
|
|
203
|
+
const contactName = `${phone}_${randomString}`;
|
|
204
|
+
|
|
205
|
+
let url = `https://wappi.pro/tapi/sync/contact/add?profile_id=${this.profile_id}`;
|
|
206
|
+
|
|
207
|
+
try {
|
|
208
|
+
let res = await fetch(url, {
|
|
209
|
+
method: "POST",
|
|
210
|
+
headers: {
|
|
211
|
+
"Content-Type": "application/json",
|
|
212
|
+
Authorization: this.token,
|
|
213
|
+
},
|
|
214
|
+
body: JSON.stringify({
|
|
215
|
+
phone: phone,
|
|
216
|
+
name: contactName,
|
|
217
|
+
}),
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
let data = await res.json();
|
|
221
|
+
|
|
222
|
+
if (data.status !== "done") {
|
|
223
|
+
return { error: true, message: `Ошибка создания контакта ${phone} в Telegram`, data: data };
|
|
224
|
+
} else {
|
|
225
|
+
data.haveContact = true;
|
|
226
|
+
return { error: false, message: `Контакт ${phone} успешно создан в Telegram`, data: data };
|
|
227
|
+
}
|
|
228
|
+
} catch (error) {
|
|
229
|
+
return { error: true, message: `Ошибка при создании контакта: ${error.message}`, data: null };
|
|
230
|
+
}
|
|
231
|
+
}
|
|
146
232
|
}
|