Как подружить Slack и VK с помощью Python?
Примеры Python » Взаимодействие с Интернетом » Python для начинающих slack bot, slack com, slack мессенджер
Slack обладает прекрасным потенциалом расширения стандартных возможностей. Но, на практике возникают сложности с интеграцией некоторых соц. сетей в чаты.
Для того, чтобы подружить Вконтакте и Slack мы воспользуемся Python и API. Ниже будет рассматривать базовый рецепт того, как сделать так, чтобы Slack-бот мог получать данные по последним комментариям из постов на стенах сообществ или групп Вконтакте.
Детские батуты – прекрасное развлечение
За программированием не стоит забывать о наших детях. Им нужно уделять время и развлекаться вместе с ними. Батуты, игры, аттракционы и прочее - вот то, что нужно нашим детям. И мы, как родители, должны разделять с ними эти развлечения и положительные эмоции! Любите и радуйте своих детей!
Итак, вернемся к нашей задаче.
Получить очень дешевых ботов для Вконтакте можно быстро и довольно легко. Совершите моментальный заказ на странице и получите ресурс уже в ближайшее время. Здесь же Вы найдете и любые другие услуги по развитию в данной социальной сети.
Slack API
Популярный мессенджер Slack имеет простой и удобный API. Он позволяет настроить легкое управление чат-ботами и осуществлять разные манипуляции с каналами. Мы разберем простейший способ создания чат-бота:
- Заходим на Slack.com (нужно зарегистрироваться, чтобы управлять вашей командой).
- Переходим в управление приложениями slack.com/apps и открываем «Configure».
- Открываем «Custom Integrations» и создаем нашего первого боту (нужно придумать имя, выбрать комнату, в которую он будет слать сообщения).
- Slack предоставит вам API token, используемый для авторизации вашего бота.
Slack-Bot.py
Первый этап завершен, теперь нужно написать бота. Чтобы программа работала понадобится установленный Python 3 с некоторыми дополнительными библиотеками, нужными для использования API. Установим slacker с VK_api:
$ pip install slacker
$ pip install vk_api
Теперь создадим базовый файл Slack-Bot.py (подойдет любой редактор кода), и приступим к написанию бота.
Импортируем необходимые библиотеки:
from slacker import Slacker
import vk_api
Авторизуемся в Slack по token:
slack = Slacker('Полученный ранее API token')
Авторизуемся в Вконтакте:
login, password = 'Login', 'pass'
vk_session = vk_api.VkApi(login, password)
try:
vk_session.authorization()
except vk_api.AuthorizationError as error_msg:
print(error_msg)
return
vk = vk_session.get_api()
Далее сделаем так, чтобы наш бот получал информации со стены групп в VK:
man_id = str(-29534144)
postidlist = vk.wall.get(owner_id=man_id, count=1, offset=0)
a = str(postidlist['items'][0]['id'])
response = vk.wall.getComments(owner_id=man_id, post_id=a, count=1, sort='desc', offset=0)
По дефолту мы будем получать ответ в виде массива, чтобы получить текст, необходимо выбрать нужные нам строки:
b = response['items'][0]['text']
Теперь полученный текст нужно отправить ботом в Slack (параметр #vk используется для обозначения комнаты, в которую будет отправляться сообщение ботом):
slack.chat.post_message('#vk', 'Новый комментарий: ' + b)
Теперь у нас имеется базовый функционал для получения комментариев и передачи их в комнаты чата Slack.
Вот исходный код функционирующего бота:
from slacker import Slacker
import vk_api
import time
slack = Slacker('Вставить token Slack bot')
def main():
login, password = 'login', 'pass'
vk_session = vk_api.VkApi(login, password)
try:
vk_session.authorization()
except vk_api.AuthorizationError as error_msg:
print(error_msg)
return
vk = vk_session.get_api()
while True:
man_id = str(-29534144)
postidlist = vk.wall.get(owner_id=man_id, count=1, offset=0)
a = str(postidlist['items'][0]['id'])
time.sleep(5)
ts = 10
bts = 10
while ts == bts:
response = vk.wall.getComments(owner_id=man_id, post_id=a, count=1, sort='desc', offset=0)
ts = str(response['items'][0]['date'])
time.sleep(5)
response = vk.wall.getComments(owner_id=man_id, post_id=a, count=1, sort='desc', offset=0)
bts = str(response['items'][0]['date'])
print('новых комментариев нет ' + ts + bts)
time.sleep(5)
response = vk.wall.getComments(owner_id=man_id, post_id=a, count=1, sort='desc', offset=0)
b = response['items'][0]['text']
slack.chat.post_message('#vk', 'Новый комментарий: ' + b)
if __name__ == '__main__':
main()
- Как запустить рекламу в Инстаграме
- Игровой автомат Fruit Cocktaill – популярный автомат родом из 90-ых
- Работа с модулями в Python
- Vulkan Platinum– виртуальная азартная игра с реальной прибылью
- Казино «Вулкан» – лучшее предложение ценителям качественного геймблинга
- Как определить мощности виртуального сервера для своего проекта?
- Как защитить Python-код от модификации?
Привет.
Столкнулся с множеством проблем с библиотекой vk для python и к сожалению автор видимо слишком занят чтобы поддерживать ее, вообщем сделал fork проекта, у уже внесено множество улучшений и исправлений, большая часть проекта покрыта тестами, добавлены полезные продакшн фичи, например, авто-разрешение конфликтов при входе с неизвестного места (когда деплоимся на aws или где-то не на домашнем лэптопе)
Надеюсь кто-то так же найдет это полезным. Извиняюсь за внимание.
Ссылка на проект: https://github.com/prawn-cake/vk-requests
Здравствуйте. Можно глупый вопрос? Я написал небольшой скриптик, хеллоу ворлд бота. Точнее сказать, модифицировал ваш. Но пока что никак не могу разобраться как, собственно, запустить бота. Посоветуйте что прочесть или что погуглить, чтобы понять, как заставить скрипт посылать команды на сервер slack.