-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathviews.py
More file actions
65 lines (56 loc) · 3.99 KB
/
views.py
File metadata and controls
65 lines (56 loc) · 3.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import requests
import json
def errorHandler(response):
if response.status_code == 400:
return "Аккаунт находится в процессе запуска/перезапуска. Попробуйте повторить попытку спустя несколько секунд"
if response.status_code == 403:
return "Проблема с аутентификацией, проверьте корректность указания idInstance"
if response.status_code == 401:
return "Проблема с авторизацией, проверьте корректность указания apiTokenInstance"
if response.status_code == 400:
return "Аккаунт не авторизован. Для авторизации аккаунта перейдите в Личный кабинет и считайте QR-код из приложения WhatsApp Business на телефоне"
if response.status_code == 429:
return "Пользователь отправил слишком много запросов за заданный промежуток времени. Уменьшите частоту запросов. Рекомендации по частоте запросов"
if response.status_code == 466:
return "Исчерпан лимит"
if response.status_code == 499:
return "Пользователь закрыл соединение, пока сервер обрабатывал запрос. Требуется увеличить время ожидания ответа от сервера и повторить запрос с задержкой. Если ошибка повториться, то информировать оператора и дать возможность повторить отправку"
if response.status_code == 500:
return "Попытка отправки файла размером более 100 МБайт"
if response.status_code == 502:
return "Сервер не способен получить ответ от целевого сервера. Требуется 3 раза повторить запрос с задержкой. Если ошибка повторится, то информировать оператора и дать возможность повторить отправку"
return response.text
def getSettings(apiUrl, idInstance, apiTokenInstance):
url = f"{apiUrl}/waInstance{idInstance}/getSettings/{apiTokenInstance}"
payload = {}
headers= {}
response = requests.request("GET", url, headers=headers, data = payload)
return errorHandler(response)
def getStateInstance(apiUrl, idInstance, apiTokenInstance):
url = f"{apiUrl}/waInstance{idInstance}/getStateInstance/{apiTokenInstance}"
payload = {}
headers= {}
response = requests.request("GET", url, headers=headers, data = payload)
return errorHandler(response)
def sendTextMessage(apiUrl, idInstance, apiTokenInstance, chatId, message):
url = f"{apiUrl}/waInstance{idInstance}/sendMessage/{apiTokenInstance}"
data = {'chatId': f"{chatId}@c.us", 'message': message}
payload = json.dumps(data).encode('utf-8')
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data = payload)
return errorHandler(response)
def sendFileByURL(apiUrl, idInstance, apiTokenInstance, chatId, fileURL):
url = f"{apiUrl}/waInstance{idInstance}/sendFileByUrl/{apiTokenInstance}"
last_backslash_index = fileURL.rfind("/")
fileName = fileURL[last_backslash_index + 1:]
last_period_index = fileName.rfind(".")
caption = fileName[:last_period_index]
print(f"{fileURL}__{fileName}__{caption}")
payload = f'{{\"chatId\": "{chatId}@c.us", "urlFile": "{fileURL}", "fileName": "{fileName}", "caption": "{caption}"}}'
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data = payload)
return errorHandler(response)