Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1199,8 +1199,34 @@ def getlo_mess():
|
|
1199 |
# Читаем параметры из POST-запроса
|
1200 |
vkid = request.form.get('vk_id', '')
|
1201 |
grup_id = request.form.get('grup_id', '') # Сюда придёт номер сообщества, который является ключом для поиска
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1202 |
|
1203 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1204 |
|
1205 |
# Получаем данные из базы данных
|
1206 |
canal_data_json = get_lo_mess_from_db(vkid)
|
|
|
1199 |
# Читаем параметры из POST-запроса
|
1200 |
vkid = request.form.get('vk_id', '')
|
1201 |
grup_id = request.form.get('grup_id', '') # Сюда придёт номер сообщества, который является ключом для поиска
|
1202 |
+
apps_id = request.form.get('apps_id', '') # Сюда придёт ИД ВК приложения
|
1203 |
+
fullUrl = request.form.get('fullUrl', '') # Полный URL, который выдаёт ВКонтакте
|
1204 |
+
|
1205 |
+
logging.debug(f"Received data: vk_id={vkid}, grup_id={grup_id}, apps_id={apps_id}, fullUrl={fullUrl}")
|
1206 |
+
|
1207 |
+
# Преобразуем строку в JSON
|
1208 |
+
try:
|
1209 |
+
api_key_apps_vk_dict = json.loads(api_key_apps_vk)
|
1210 |
+
except json.JSONDecodeError as e:
|
1211 |
+
logging.error(f"Error decoding JSON: {e}")
|
1212 |
+
return jsonify({"status": "invalid"}), 200
|
1213 |
+
|
1214 |
+
# Проверка подписи для приложения
|
1215 |
+
if str(apps_id) not in api_key_apps_vk_dict: # Приводим apps_id к строке
|
1216 |
+
logging.error("Invalid apps_id")
|
1217 |
+
return json.dumps({"error": "Invalid apps_id"}), 400
|
1218 |
|
1219 |
+
secret = api_key_apps_vk_dict[str(apps_id)] # Приводим apps_id к строке
|
1220 |
+
logging.debug(f"Using secret: {secret}")
|
1221 |
+
|
1222 |
+
# Парсим полный URL для получения параметров запроса
|
1223 |
+
query_params = dict(parse_qsl(urlparse(fullUrl).query, keep_blank_values=True))
|
1224 |
+
logging.debug(f"Query params for signature check: {query_params}")
|
1225 |
+
|
1226 |
+
# Проверяем подпись
|
1227 |
+
if not is_valid(query=query_params, secret=secret):
|
1228 |
+
logging.error("Invalid signature")
|
1229 |
+
return json.dumps({"error": "Invalid signature"}), 400
|
1230 |
|
1231 |
# Получаем данные из базы данных
|
1232 |
canal_data_json = get_lo_mess_from_db(vkid)
|