История выпусков Уведомления о выпусках | Лента RSS
Эта версия
Загрузка файлов
Загрузите файл для вашей платформы. Если вы не уверены, какой выбрать, узнайте больше об установке пакетов.
Source Distribution
Uploaded 16 июл. 2021 г. source
Built Distribution
Uploaded 16 июл. 2021 г. py3
Хеши для vk_messages-1.3.tar.gz
fab5adc6a49b3347e841aa3d2549dd38791111bab96274288f20d10619bf9806 | Копировать |
68cbff5f2eae3174f94bdc16e85eab07 | Копировать |
ce3cbaf457f161ec63ad99bb34903c5d3a28920b5cab4dbff7ee45ffbbe9f636 | Копировать |
Хеши для vk_messages-1.3-py3-none-any.whl
0eba845c1817ef7df3d90e4558bce1ba81bbc4dcf510938df43f3922c61ddcc7 | Копировать |
9a5efa65e595f6bd3ea6d68fa2aa615e | Копировать |
2938211fe990395e001f5032a04b7e72ff1162bf97a029568cc058da7dbdc966 | Копировать |
Помощь
О PyPI
Внесение вклада в PyPI
Использование PyPI
Разработано и поддерживается сообществом Python’а для сообщества Python’а.
Скачиваем сообщения из беседы или диалога ВК Вконтакте [Python, VK API]
Пожертвуйте сегодня!
PyPI», «Python Package Index» и логотипы блоков являются зарегистрированными товарными знаками Python Software Foundation.
Источник: pypi.org
Прикручиваем к Zabbix оповещения в VKontakte
Перейдем в раздел VK Developers -> Мои приложения и жмем кнопку «Создать приложение». Платформа нашего приложения — «Standalone-приложение», название — придумайте любое (Например, my_access_token). Жмем «Подключить приложение».
Далее, будет необходимо подтвердить данное действие. Мне удобнее это сделать по SMS. Получаем код подтверждения СМСкой и вбиваем его в соответствующее поле, все просто. После чего нас редиректит в раздел управления приложением.
Получаем acces_token
Vkontakte API Python | Как работать с методами?
В разделе редактирования приложения, перейдем на вкладку «Настройки» и скопируем «ID приложения».
Для получения токена, перейдем по ссылке, вида:
https://oauth.vk.com/authorize?client_id=ID_ПРИЛОЖЕНИЯredirect_uri=http://api.vk.com/blank.htmlresponse_type=token
Само собой, на место «ID_ПРИЛОЖЕНИЯ» — подставляем ID нашего приложения. «scope» — права доступа приложения к соответствующим разделам. Если необходимо только слать сообщения — можно обойтись разделом «messages». В моем случае — я разрешил все.
В браузере, переходим по получившейся ссылке и разрешаем доступ приложения к запрошенным разделам. После чего нас перекинет на api.vk.com/blank.html и, о чудо (. ), в адресной строке браузера, мы видим наш access_token. Копируем его к себе, и никому не показываем! С помощью данного токена, приложение может выполнять любые (разрешенные) запросы к API от имени пользователя под кем генерировался токен.
Пишем alertscript
Все alertscript’ы zabbix’а лежат в отдельной директории, путь до которой указывается в переменной AlertScriptsPath, в zabbix_server.conf.
Создаем скрипт в данной директории, назовем его, допустим — «zabbix_vk_alert.sh»:
#!/bin/sh # Input params from zabbix vk_user_id=$1 vk_subject=$2 vk_message=$3 vk_full_message=»[$vk_subject]%0A$vk_message%0A[/$vk_subject]» # Access token from vk app vk_access_token=»**************************************************» # URL for VK.API method vk_api_method_url=»https://api.vk.com/method/messages.send» # Request curl -d «access_token=$vk_access_tokenmessage=$vk_full_message» $vk_api_method_url
$1, $2, $3 — входные параметры, с которыми zabbix будет дергать скрипт;
vk_full_message — полный текст сообщения;
%0A — перенос строки;
vk_access_token — наш токен (не забудьте подставить).
P.S. возможно придется указать полный путь до CURL
Даем права на запуск:
chmod +x /usr/lib/zabbix/alertscripts/zabbix_vk_alert.sh
Настраиваем оповещение в zabbix
На страничке нашего zabbix’а переходим на вкладку Администрирование -> Способы оповещений, где создаем новое оповещение:
Имя — произвольное имя;
Имя скрипта — правильное имя файла, которое zabbix будет искать в alertscrits;
Параметры — те самые три параметра, которые на вход принимает скрипт.
Добавляем!
Переходим на вкладку Настройка -> Действия, где создадим новое действие в 3 этапа:
- Подраздел «Действие»
Имя — произвольное имя. - Подраздел «Операции»
Здесь описываются действия при срабатывании триггера
Тема по умолчанию — формат темы (передается скрипту в событии оповещения );
Сообщение по умолчанию — формат сообщения (передается скрипту в событии оповещения ).
Далее, необходимо добавить операцию (Жмем линк «Новый»):
Обозначаем, кого будем оповещать (группы иили пользователи);
Устанавливаем в поле «Отправлять только через» наше «VKontakte».
Жмем на ссылочку (не кнопочку) «Добавить» 🙂 - Подраздел «Операции восстановления»
Здесь описываются действия при восстановлении триггера
По аналогии с подразделом «Операции», форматируем тему и тело сообщения.
Все остальное ставится по умолчанию. Жмем кнопку «Добавить»!
И напоследок, прилепим оповещение в пользователю.
Переходим в раздел Администрирование -> Пользователи, жмем на конкретного пользователя, переходим в подраздел «Оповещения», жмем «Добавить».
Тип оповещения — «VKontakte»;
Отправлять на — вставляем ИД пользователя в ВК.
Жмем «Добавить».
Готово!
Итог
В результате, все пользователи, у которых «тип» оповещения установлен в «VKontakte» и задан ID пользователя, будут получать что-то вроде:
Источник: marvins.ru
Почему метод «message.get()» не работает?
Столкнулся с проблемой при работе с VK API на Python’е 3. Сделал простого бота по инструкциям (видео на YouTube, статьи различные и т.д.).
На следующий день, бот перестал работать. Происходила ошибка с параметрами метода message.get() (Ошибка №100). Зашел на документацию ВК, стал искать ошибку. Увидел, что метод устарел и понял, что метод лучше не использовать (даже если ошибка не в нем), но не знал что делать.
На просторах Интернета нашел видео, в котором использовался метод messages.getConversations() , но он показался мне менее гибким, т.к. он возвращает информацию о диалогах бота и только последнее сообщение диалога (а предыдуший возвращал список диалогов в месте с сообщениями).
Хештеги: (Написал для поиска по словам)
vk vk-api vkontakte vkontakte-api вк вконтакте метод message.get метод messages.getConversations ошибка 100 параметры бот чат-бот бот для вк чат-бот для вк python python 3 python.3-x
Ответы (1 шт):
Метод message.get устарел и возможно был заблокирован (а если ещё нет, все равно в не рекомендуется использовать). Вместо него лучше использовать сочетание методов messages.getConversations и messages.getHistory . 1 метод возвращает список диалогов(можно использовать фильтры), 2 возвращает сообщения диалога по его id. Для наглядности выполним следующий код:
VK = vk_api.VkApi(token = ТОКЕН_ДОСТУПА) # ТОКЕН_ДОСТУПА = ‘ae4919g789965bf10. ‘ — токен доступа к сообществу print(VK.method(«messages.getConversations», )) #Метод, который собирает новые диалоги с неотвеченными сообщениями
Результат (привел в читабельный вид):
< ‘count’: 1, ‘items’: [< ‘conversation’: < ‘unanswered’: True, ‘peer’: < ‘local_id’: *айди собеседника или беседы*, ‘type’: ‘user’, ‘id’: *ID собеседника*, >’last_message_id’: 312, ‘in_read’: 312, ‘out_read’: 312, ‘can_write’: >, ‘last_message’: < ‘is_hidden’: False, ‘id’: 312, ‘conversation_message_id’: 312, ‘from_id’: *айди автора последнего сообщения*, ‘date’: 1531127807, ‘important’: False, ‘attachments’: [], ‘text’: *Текст последнего сообщения*, ‘out’: 0, ‘peer_id’: *айди диалога*, ‘random_id’: 0, ‘fwd_messages’: [] >>] >
На самом деле, метод messages.getConversations дает достаточно много, помимо последнего сообщения.
В нашем случае нам нужен параметр ‘peer_id’ — ID диалога. Кстати, хотел сказать, что в примере только 1 диалог, но их может быть и больше. По этому, мы будем постоянно пользоваться циклом for чтобы последовательно отвечать на сообщения разных диалогов. Теперь вместе с этим методом используем messages.getHistory :
VK = vk_api.VkApi(token = ТОКЕН_ДОСТУПА) Диалоги_Бота = VK.method(«messages.getConversations», ) for Данные_о_диалоге in Диалоги_Бота[‘items’]: ID_Диалога = Данные_о_диалоге[‘conversation’][‘peer’][‘local_id’] print(VK.method(‘messages.getHistory’, ))
И вот мы вывели на экран списки сообщений из каждого диалога. Далее, вместо того, чтобы выводить сообщения в консоль мы можем отвечать на них, удалять их, пересылать, записывать и т.д. Таким образом мы смогли заменить старый метод сочетанием 2-х новых.
Источник: husl.ru