====== Настройка ======
- Заведите себе личное сообщество
- Зайдите в {{:python:705-706_informatika_2019-05-22_17-16-00.png?400|}}
- Нажмите {{:python:705-706_informatika_kljuchi_dostupa_2019-05-22_17-16-52.png?400|}}
- В окне укажите {{:python:705-706_informatika_kljuchi_dostupa_2019-05-22_17-17-21.png?400|}}
- Нажмите "Создать". Не забудьте сохранить ключ.
- В разделе управления зайдите в {{:python:705-706_informatika_nastrojki_2019-05-22_17-16-28.png?400|}}
- В разделе управления зайдите в {{:python:705-706_informatika_soobschenija_2019-05-22_17-24-52.png?400|}}
- И включите все {{:python:705-706_informatika_soobschenija_2019-05-22_17-25-33.png?400|}}
- В разделе Настройки - Работа с API переключите Long Poll API с выключен на включен. Проверьте, что выпадающем меню Версия API выбрана максимально доступная версия (на картинке 5.50, текущая в районе 5.120): {{:python:705-706_informatika_callback_api_2019-05-22_17-23-17.png?400|}}
- В вкладке Long Poll API включите все {{:python:705-706_informatika_callback_api_2019-05-22_17-24-29.png?400|}}
====== Установка библиотеки ======
Выполните в терминале ''pip3 install vk_api''
====== Пример кода бота ======
import vk_api # подключаем апи бота
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
from vk_api.utils import get_random_id
token = "тот ключ, который вы создали"
# подключаемся к сообществу
vk_session = vk_api.VkApi(token=token)
vk = vk_session.get_api()
# включаем бота в режим приема сообщений
longpoll = VkBotLongPoll(vk_session, "цифирки в адресе сообществе")
# Обрабтка сообщений
for event in longpoll.listen(): # вечно ждем новых сообщений
if event.type == VkBotEventType.MESSAGE_NEW: # если сообщение пришло
if event.obj.message["text"] != '': # и оно не пустое
if event.from_user: # да еще и от пользователя
user_sent = event.obj.message["text"] # возьмем его текст
if user_sent == "ПРИВЕТ": # если текст равен "ПРИВЕТ"
vk.messages.send(
user_id=event.obj.message["from_id"],
random_id=get_random_id(),
message="И тебе привет") # Поздороваемся в ответ
else:
vk.messages.send(
user_id=event.obj.message["from_id"],
random_id=get_random_id(),
message=user_sent) # иначе вернем сообщение назад
====== Пример кода бота с загрузкой сообщений ======
import vk_api # подключаем апи бота
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
from vk_api.utils import get_random_id
token = "тот ключ, который вы создали"
# подключаемся к сообществу
vk_session = vk_api.VkApi(token=token)
vk = vk_session.get_api()
# создаем функцию отправки сообщения
def post_image(api, user_id, image_path):
upload_server = api.photos.getMessagesUploadServer(peer_id=user_id)
upload_url = upload_server["upload_url"]
files = {'photo': open(image_path, 'rb')}
response = requests.post(upload_url, files=files)
result = json.loads(response.text)
upload_result = api.photos.saveMessagesPhoto(server=result["server"],
photo=result["photo"],
hash=result["hash"])
return upload_result
# включаем бота в режим приема сообщений
longpoll = VkBotLongPoll(vk_session, "цифирки в адресе сообществе")
# Обрабтка сообщений
for event in longpoll.listen(): # вечно ждем новых сообщений
if event.type == VkBotEventType.MESSAGE_NEW: # если сообщение пришло
if event.obj.message["text"] != '': # и оно не пустое
if event.from_user: # да еще и от пользователя
user_sent = event.obj.message["text"] # возьмем его текст
if user_sent == "ПРИВЕТ": # если текст равен "ПРИВЕТ"
upload_result = post_image(vk, user_id, "путь до картинки") # выгружаем изображение в скрытый альбом группы и сохраняем ответ от вконтакта
vk.messages.send(
user_id=event.obj.message["from_id"],
random_id=get_random_id(),
message="И тебе привет", attachment="photo%s_%s" % (user_id, upload_result[0]["id"]) ) # Поздороваемся в ответ и приложим к сообщению картинку
else:
vk.messages.send(
user_id=event.obj.message["from_id"],
random_id=get_random_id(),
message=user_sent) # иначе вернем сообщение назад