-
Notifications
You must be signed in to change notification settings - Fork 2
/
messages_bot_slack.py
66 lines (51 loc) · 1.91 KB
/
messages_bot_slack.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# -*- coding: utf-8 -*-
import requests
# https://github.com/python273/vk_api
import vk_api
from vk_api import VkUpload
from vk_api.longpoll import VkLongPoll, VkEventType
# https://github.com/os/slacker
from slacker import Slacker
import time
#setting
DEBUG = True
slack = Slacker('Your token API Slack')
login = 'your login VK'
password = 'your pass VK'
vk_token = 'Your token API VK group'
def main():
if DEBUG:
print("Start work!")
session = requests.Session()
# Авторизация пользователя:
"""
vk_session = vk_api.VkApi(login, password)
try:
vk_session.auth()
except vk_api.AuthError as error_msg:
print(error_msg)
return
"""
# Авторизация группы:
# при передаче token вызывать vk_session.auth не нужно
"""
vk_session = vk_api.VkApi(token='токен с доступом к сообщениям и фото')
"""
vk_session = vk_api.VkApi(token=vk_token)
vk = vk_session.get_api()
longpoll = VkLongPoll(vk_session)
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text:
# Отправка в Slack чат (#vk) - должен быть заранее создан у вас в Slack
slack.chat.post_message('#vk', 'Новое сообщение: id{}: "{}"'.format(event.user_id, event.text))
if DEBUG:
print('id{}: "{}"'.format(event.user_id, event.text), end=' ')
# Ответ пользователю на сообщение в ВК.
vk.messages.send(
user_id=event.user_id,
message="Мы получили ваше сообщение. В ближайшее время мы ответим вам."
)
if DEBUG:
print('ok')
if __name__ == '__main__':
main()