Skip to content

Commit 71d432f

Browse files
author
prostomarkeloff
authored
Add callback-bot example
1 parent 5218a77 commit 71d432f

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

examples/callback_bot.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# -*- coding: utf-8 -*-
2+
from flask import Flask
3+
import vk_api
4+
5+
"""
6+
Пример бота для группы ВКонтакте использующего
7+
callback-api для получения сообщений.
8+
9+
Подробнее: https://vk.com/dev/callback_api
10+
11+
"""
12+
13+
app = Flask(__name__)
14+
vk_session = vk_api.VkApi(token='your_group_token')
15+
vk = vk_session.get_api()
16+
17+
access_code = "smthing code"
18+
19+
@app.route('/my_bot', methods=['POST'])
20+
def bot():
21+
# получаем данные из запроса
22+
data = json.loads(request.data)
23+
# ВКонтакте в своих запросах всегда отправляет поле type:
24+
if 'type' not in data.keys():
25+
return 'not ok'
26+
27+
# проверяем тип пришедшего события
28+
if data['type'] == 'confirmation':
29+
# если это запрос защитного кода
30+
# отправляем его
31+
return access_code
32+
# если же это сообщение, отвечаем пользователю
33+
elif data['type'] == 'message_new':
34+
# получаем ID пользователя
35+
from_id = data['object']['from_id']
36+
# отправляем сообщение
37+
vk.messages.send(message='Hello World!', random_id=0, peer_id=from_id)
38+
# возвращаем серверу VK "ok" и код 200
39+
return 'ok'
40+
41+
# точка входа приложения
42+
if __name__ == '__main__':
43+
# запускаем веб-сервер
44+
app.run()

0 commit comments

Comments
 (0)