DmitrMakeev commited on
Commit
047014e
·
verified ·
1 Parent(s): b4a46b9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -1
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
- logging.debug(f"Received data: vk_id={vkid}, grup_id={grup_id}")
 
 
 
 
 
 
 
 
 
 
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)