DmitrMakeev commited on
Commit
70dd4c7
·
verified ·
1 Parent(s): e1eceee

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -18
app.py CHANGED
@@ -1038,29 +1038,47 @@ def send_ns(*args):
1038
  def users():
1039
  return render_template('user.html')
1040
 
1041
- @app.route('/get_vk_user_info', methods=['GET'])
1042
- def get_vk_user_info():
1043
- token = request.args.get('token')
1044
- if not token:
1045
- return jsonify({'error': 'Token is required'}), 400
1046
 
1047
- print(f'Token: {token}') # Вывод токена в консоль сервера
 
 
1048
 
1049
- url = f'https://api.vk.com/method/users.get?v=5.131&access_token={token}'
1050
- response = requests.get(url)
 
 
 
 
1051
 
1052
- if response.status_code != 200:
1053
- print(f'VK API Error: {response.status_code}')
1054
- return jsonify({'error': 'Failed to get user info', 'status_code': response.status_code, 'response': response.json()}), response.status_code
1055
 
1056
- data = response.json()
1057
- if 'response' in data and len(data['response']) > 0:
1058
- user_id = data['response'][0]['id']
1059
- return jsonify({'user_id': user_id})
1060
- else:
1061
- print(f'VK API Response: {data}')
1062
- return jsonify({'error': 'Failed to get user info', 'data': data}), 500
 
 
1063
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1064
 
1065
 
1066
 
 
1038
  def users():
1039
  return render_template('user.html')
1040
 
 
 
 
 
 
1041
 
1042
+ VK_CLIENT_ID = '52295022'
1043
+ VK_CLIENT_SECRET = 'your_client_secret'
1044
+ REDIRECT_URI = 'https://dmtuit-psy-vk.hf.space/pages'
1045
 
1046
+ # Маршрут для обмена кода на access_token
1047
+ @app.route('/exchange_code', methods=['POST'])
1048
+ def exchange_code():
1049
+ data = request.json
1050
+ code = data.get('code')
1051
+ device_id = data.get('deviceId')
1052
 
1053
+ if not code or not device_id:
1054
+ return jsonify({'error': 'Code and device_id are required'}), 400
 
1055
 
1056
+ # Обмен кода на access_token
1057
+ token_url = f'https://oauth.vk.com/access_token?client_id={VK_CLIENT_ID}&client_secret={VK_CLIENT_SECRET}&redirect_uri={REDIRECT_URI}&code={code}'
1058
+ token_response = requests.get(token_url)
1059
+
1060
+ if token_response.status_code != 200:
1061
+ return jsonify({'error': 'Failed to exchange code for access token'}), 500
1062
+
1063
+ token_data = token_response.json()
1064
+ access_token = token_data.get('access_token')
1065
 
1066
+ if not access_token:
1067
+ return jsonify({'error': 'No access token returned'}), 500
1068
+
1069
+ # Теперь получаем информацию о пользователе с помощью access_token
1070
+ user_info_url = f'https://api.vk.com/method/users.get?v=5.131&access_token={access_token}'
1071
+ user_info_response = requests.get(user_info_url)
1072
+
1073
+ if user_info_response.status_code != 200:
1074
+ return jsonify({'error': 'Failed to get user info from VK'}), 500
1075
+
1076
+ user_info_data = user_info_response.json()
1077
+ if 'response' in user_info_data and len(user_info_data['response']) > 0:
1078
+ user_info = user_info_data['response'][0]
1079
+ return jsonify(user_info)
1080
+ else:
1081
+ return jsonify({'error': 'User info not found'}), 500
1082
 
1083
 
1084