· 7 years ago · Mar 21, 2018, 10:32 PM
1import re
2import json
3import click
4import requests as req
5
6SERVICE_ACCESS_KEY = ""
7API_VERSION = 5.73
8APP_ID = 6417611
9SECRET_KEY = ""
10
11
12class UserNotExist(Exception):
13 pass
14
15
16def get_user_info(user_name):
17 data = {
18 'user_ids': [user_name],
19 'v': API_VERSION
20 }
21 r = req.get("https://api.vk.com/method/users.get", params=data)
22
23 try:
24 return json.loads(r.text)['response'][0]
25 except KeyError:
26 raise UserNotExist(r.text)
27
28
29def get_user_id(user):
30 if re.findall(r'id[\d]+$', user):
31 return user
32
33 user_info = get_user_info(user)
34 return user_info['id']
35
36
37def get_user_groups(user_id, access_token):
38 data = {
39 'user_id': user_id,
40 'v': API_VERSION,
41 'access_token': access_token
42 # 'access_token': SERVICE_ACCESS_KEY,
43 # 'client_secret': access_token
44 }
45 r = req.get("https://api.vk.com/method/groups.get", params=data)
46 # return json.loads(r.text)['response']['items']
47 print(r.text)
48
49
50def get_friends(user_id):
51 data = {
52 'user_id': user_id,
53 'v': API_VERSION
54 }
55 r = req.get("https://api.vk.com/method/friends.get", params=data)
56
57 return json.loads(r.text)['response']['items']
58
59
60def get_access_token():
61 data = {
62 'client_id': APP_ID,
63 'client_secret': SECRET_KEY,
64 'v': API_VERSION,
65 'grant_type': 'client_credentials',
66 'scope': 'groups,friends'
67 }
68 r = req.get("https://oauth.vk.com/access_token", params=data)
69 response = json.loads(r.text)
70 # print(response)
71
72 return response['access_token']
73
74
75@click.command()
76@click.argument('user')
77def main(user):
78 access_token = get_access_token()
79 user_id = get_user_id(user)
80 user_groups = get_user_groups(user_id, access_token)
81 # friend_ids = get_friends(user_id)
82
83
84
85
86if __name__ == "__main__":
87 main()