Vk message как работает

История выпусков Уведомления о выпусках | Лента RSS

Эта версия

Загрузка файлов

Загрузите файл для вашей платформы. Если вы не уверены, какой выбрать, узнайте больше об установке пакетов.

Source Distribution

Uploaded 16 июл. 2021 г. source

Built Distribution

Uploaded 16 июл. 2021 г. py3

Хеши для vk_messages-1.3.tar.gz

Хеши для vk_messages-1.3.tar.gz Алгоритм Хеш-дайджест SHA256 MD5 BLAKE2b-256
fab5adc6a49b3347e841aa3d2549dd38791111bab96274288f20d10619bf9806 Копировать
68cbff5f2eae3174f94bdc16e85eab07 Копировать
ce3cbaf457f161ec63ad99bb34903c5d3a28920b5cab4dbff7ee45ffbbe9f636 Копировать

Хеши для vk_messages-1.3-py3-none-any.whl

Хеши для vk_messages-1.3-py3-none-any.whl Алгоритм Хеш-дайджест SHA256 MD5 BLAKE2b-256
0eba845c1817ef7df3d90e4558bce1ba81bbc4dcf510938df43f3922c61ddcc7 Копировать
9a5efa65e595f6bd3ea6d68fa2aa615e Копировать
2938211fe990395e001f5032a04b7e72ff1162bf97a029568cc058da7dbdc966 Копировать

Помощь

О PyPI

Внесение вклада в PyPI

Использование PyPI

Разработано и поддерживается сообществом Python’а для сообщества Python’а.

Скачиваем сообщения из беседы или диалога ВК Вконтакте [Python, VK API]


Пожертвуйте сегодня!

PyPI», «Python Package Index» и логотипы блоков являются зарегистрированными товарными знаками Python Software Foundation.

Источник: pypi.org

Прикручиваем к Zabbix оповещения в VKontakte

img-0

img-1

Перейдем в раздел VK Developers -> Мои приложения и жмем кнопку «Создать приложение». Платформа нашего приложения — «Standalone-приложение», название — придумайте любое (Например, my_access_token). Жмем «Подключить приложение».

img-2

Далее, будет необходимо подтвердить данное действие. Мне удобнее это сделать по SMS. Получаем код подтверждения СМСкой и вбиваем его в соответствующее поле, все просто. После чего нас редиректит в раздел управления приложением.

Получаем acces_token

img-3

Vkontakte API Python | Как работать с методами?

В разделе редактирования приложения, перейдем на вкладку «Настройки» и скопируем «ID приложения».

Для получения токена, перейдем по ссылке, вида:
https://oauth.vk.com/authorize?client_id=ID_ПРИЛОЖЕНИЯredirect_uri=http://api.vk.com/blank.htmlresponse_type=token

Еще по теме:  Как получить популярность в Вконтакте

img-4

Само собой, на место «ID_ПРИЛОЖЕНИЯ» — подставляем ID нашего приложения. «scope» — права доступа приложения к соответствующим разделам. Если необходимо только слать сообщения — можно обойтись разделом «messages». В моем случае — я разрешил все.

img-5

В браузере, переходим по получившейся ссылке и разрешаем доступ приложения к запрошенным разделам. После чего нас перекинет на 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

img-6

На страничке нашего zabbix’а переходим на вкладку Администрирование -> Способы оповещений, где создаем новое оповещение:
Имя — произвольное имя;
Имя скрипта — правильное имя файла, которое zabbix будет искать в alertscrits;
Параметры — те самые три параметра, которые на вход принимает скрипт.
Добавляем!

Переходим на вкладку Настройка -> Действия, где создадим новое действие в 3 этапа:

  1. Подраздел «Действие»
    img-7
    Имя — произвольное имя.
  2. Подраздел «Операции»
    Здесь описываются действия при срабатывании триггера
    img-8
    Тема по умолчанию — формат темы (передается скрипту в событии оповещения );
    Сообщение по умолчанию — формат сообщения (передается скрипту в событии оповещения ).
    Далее, необходимо добавить операцию (Жмем линк «Новый»):
    img-9
    Обозначаем, кого будем оповещать (группы иили пользователи);
    Устанавливаем в поле «Отправлять только через» наше «VKontakte».
    Жмем на ссылочку (не кнопочку) «Добавить» 🙂
  3. Подраздел «Операции восстановления»
    Здесь описываются действия при восстановлении триггера
    img-10
    По аналогии с подразделом «Операции», форматируем тему и тело сообщения.
    Все остальное ставится по умолчанию. Жмем кнопку «Добавить»!
Еще по теме:  Как выиграть репост в контакте

img-11

И напоследок, прилепим оповещение в пользователю.
Переходим в раздел Администрирование -> Пользователи, жмем на конкретного пользователя, переходим в подраздел «Оповещения», жмем «Добавить».

Тип оповещения — «VKontakte»;
Отправлять на — вставляем ИД пользователя в ВК.
Жмем «Добавить».
Готово!

Итог

img-12

В результате, все пользователи, у которых «тип» оповещения установлен в «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

Рейтинг
( Пока оценок нет )
Загрузка ...