Простое использование vk_api Python

substandard rank
Забаненный
Статус
Оффлайн
Регистрация
21 Янв 2019
Сообщения
424
Реакции[?]
113
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Опять всем привет, в данной теме пройдемся по vk_api.

vk_api, библиотека для многих популярных языков, в том числе и python.
она нужна для работы с данными в беседах, личке, группах, профиле и тд.

для начала установим данную библиотеку. pip install vk_api

импортируем ее: import vk_api

первым делом хочу ознакомить вас с ботами для вк групп.

для работы бота, нам нужно: токен группы и id группы.

токен можно получить в группе->Управление->Работа с API->последняя вкладка Long Poll API, проверяем чтобы он был включен.
возвращаемся в Ключи доступа, там создать ключи, выбираем нужные нам функции.
обязательно выберите 2 пункт, Разрешить приложению доступ к сообщениям сообщества.
Создаете.

ну а далее все как обычно, делаю простой код и объясняю в нем же.

Python:
import vk_api, random
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
# из лонг пулла импортируем нужные нам библиотеки.

token = "ваш токен"
vk = vk_api.VkApi(token=token) #авторизация
vk._auth_token() #в вк
longpoll = VkBotLongPoll(vk, 'ваш айди группы') #подключение longpoll

print("Бот запущен") #Пишем в консоль чтобы понять запущен ли бот.

while True: #бесконечный цикл
    for event in longpoll.listen(): #прослушиваем все сообщения

        # Если пришло новое сообщение
        if event.type == VkBotEventType.MESSAGE_NEW:
            mess = event.obj['text'] #преобразуем текст сообщения в переменную
            peer_id = event.obj['peer_id']
            
            if mess == "Привет!": #если текст сообщения = Привет!, отправляем сообщение.
                vk.method("messages.send", { "peer_id": peer_id, "message": "Прииивееетт!!", "random_id": random.randint(1, 2147483647)})
                #в строке выше из вк апи мы получаем метод отправки сообщения, а после указываем все нужные данные, такие как айди чата (лс/беседа), содержание отправленного ботом сообщения и рандомное айди для сообщения (а вообще я хз что это, никогда не обращал внимания).
                
                #Вообщем-то все. Бот готов
работа бота:
Снимок.PNG

Далее рассмотрим смену статуса с помощью vk_api.

Python:
import requests
import datetime
import time
#подключаем все нужные библиотеки

token = "" #ваш токен (страницы в вк)
timeKD = 30 #время смены статуса (каждые n секунд) в данном случае каждые 30

def startStatus(): #функция смены статуса
    getCountry = requests.get("https://api.vk.com/method/account.getProfileInfo?v=5.95&access_token={0}".format(token)) #получаем город из страницы в вк
    getCountry = getCountry.json()
    getCountry = getCountry["response"]
    getCountry = getCountry["city"]
    city = getCountry["title"] #преобразуем его в переменную city

    url = "http://api.openweathermap.org/data/2.5/weather" #url сайта с погодой, с которого будем получать погоду по городу из вк.
    parameters = {
    'q': city,
    'appid': "778d98cf94b6609bec655b872f24b907",
    'units':'metric',
    'lang' : 'en'} #параметры для запроса
    res = requests.get(url, params = parameters) #запрос
    data = res.json() #конвертируем в json

    today = datetime.datetime.today()
    nowT = (int(today.strftime('%H')))  #текущий час
    nowTs = str(nowT) + ':' + today.strftime('%M') #текущие минуты
    nowDate = today.strftime("%d.%m.%Y") #конвертируем дату в одну переменную

    if int(data['main']['temp']) <= 0:
        t = '?'
    elif int(data['main']['temp']) > 0 < 15:
        t = '☁'
    elif int(data['main']['temp']) >= 20:
        t = '☀'
    elif int(data['main']['temp']) >= 15 < 20:
        t = '?'
    #сверх условия ака получение стикера для погоды XDD
    statusSave = ("Time: {0} | Date: {1} | Weather in '{2}': {3}℃".format(nowTs, nowDate, data["name"], str(data["main"]["temp"])) + t) #сохраняем статус в одну переменную
    statusOut = "https://api.vk.com/method/status.set?text=" + str(statusSave) + "&v=5.95&access_token=" + token #конечная ссылка на замену статуса с помощью метода в вк апи status.set
    print(str(statusOut)) #выводим в консоль статус который вы поставили
    print("Статус был обновлён") #пишем что он был обновлен
    return requests.get(str(statusOut)) # заменяем статус.

while True: #бесконечный цикл
    startStatus()
    time.sleep(timeKD) #задержка на обновление статуса.
далее посмотрим на смену аватарки через вк_апи.

Python:
import vk_api #опять импортируем вк апи

token = "токен вашей страницы"

vk_session = vk_api.VkApi(login = 'ваш логин', password="ваш пароль", token=token)
vk = vk_session.get_api()

photos = vk.photos.get(count = 1, album_id = 'profile', rev = 1) #получаем последнюю фотографию

if photos ['items']:
    photo_id = response_ph['items'][0] #id последней фотографии
    ph_response_delete = vk.photos.delete(photo_id = photo_id['id']) #удаляем последнюю фотку
    
upload = vk_api.VkUpload(vk_session) #загружаем фото
photo = upload.photo_profile('название фотки на пк (photo.jpg)') #обновляем фото на странице в вк

response = vk.wall.get(count = 1) # получаем 1 запись со стены

if response ['items']:
    post = response['items'][0]
    post_response_delete = vk.wall.delete(post_id = post['id']) #и опять удаляем фото, чтобы не засирать себе страницу
С помощью данных "гайдов", можно провернуть прикольные вещи, например анимационная аватарка в вк, статус содержащий в себе что-то важное для вас или бота для вашей группы.
Всем удачи!
 
substandard rank
Забаненный
Статус
Оффлайн
Регистрация
21 Янв 2019
Сообщения
424
Реакции[?]
113
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вообще если ты копировал мой код, то у тебя должно все работать. Возможно ты отправил не текст, а смайлик или картинку, с учетом того что ты читаешь все сообщения, а не только Привет!
А вообще гадать так себе, что ты менял в моем коде?
 
Участник
Статус
Оффлайн
Регистрация
31 Дек 2018
Сообщения
862
Реакции[?]
225
Поинты[?]
0
Товары в продаже
1
Вообще если ты копировал мой код, то у тебя должно все работать. Возможно ты отправил не текст, а смайлик или картинку, с учетом того что ты читаешь все сообщения, а не только Привет!
А вообще гадать так себе, что ты менял в моем коде?
ну только ид группы и токен вставил , ща снова попробую
 
substandard rank
Забаненный
Статус
Оффлайн
Регистрация
21 Янв 2019
Сообщения
424
Реакции[?]
113
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Участник
Статус
Оффлайн
Регистрация
27 Фев 2019
Сообщения
1,125
Реакции[?]
395
Поинты[?]
50K
Раньше кодил на PyGame, не думал, что Python и гайды по нему так далеко зайдут... Ну ладно.
 
substandard rank
Забаненный
Статус
Оффлайн
Регистрация
21 Янв 2019
Сообщения
424
Реакции[?]
113
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
substandard rank
Забаненный
Статус
Оффлайн
Регистрация
21 Янв 2019
Сообщения
424
Реакции[?]
113
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Участник
Статус
Оффлайн
Регистрация
27 Фев 2019
Сообщения
1,125
Реакции[?]
395
Поинты[?]
50K
Так ебать, разжёвывай мне тут, что и как. Ну пожалуйста) Нихуя не понятно, первый раз пасщу пишу бота на Python.

1. Что писать тут и как его получить?

Python:
token = ""
2. Что писать тут и как его получить?))))


Python:
longpoll = VkBotLongPoll(vk, '') #подключение longpoll
Соре, я просто балдаёб)
 
substandard rank
Забаненный
Статус
Оффлайн
Регистрация
21 Янв 2019
Сообщения
424
Реакции[?]
113
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Так ебать, разжёвывай мне тут, что и как. Ну пожалуйста) Нихуя не понятно, первый раз пасщу пишу бота на Python.

1. Что писать тут и как его получить?

Python:
token = ""
2. Что писать тут и как его получить?))))


Python:
longpoll = VkBotLongPoll(vk, '') #подключение longpoll
Соре, я просто балдаёб)
1. тот ключ который ты создал
2. айди сверху, если там не idцифры, берешь название на сайте для получения айпи вставляешь его во 2 штуку
 
Участник
Статус
Оффлайн
Регистрация
27 Фев 2019
Сообщения
1,125
Реакции[?]
395
Поинты[?]
50K
1.2. Запрещено выделять всё сообщение жирным шрифтом, курсивом, подчеркиванием, цветом. Пользуйтесь BB-кодами с умом, выделяя лишь самое важное в теме, на что следует обратить внимание.
1580902399436.png

ТЫ МЕНЯ ГДЕ-ТО НАЕБАЛ)
 
Последнее редактирование модератором:
substandard rank
Забаненный
Статус
Оффлайн
Регистрация
21 Янв 2019
Сообщения
424
Реакции[?]
113
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Участник
Статус
Оффлайн
Регистрация
27 Фев 2019
Сообщения
1,125
Реакции[?]
395
Поинты[?]
50K
1.2. Запрещено выделять всё сообщение жирным шрифтом, курсивом, подчеркиванием, цветом. Пользуйтесь BB-кодами с умом, выделяя лишь самое важное в теме, на что следует обратить внимание.
Последнее редактирование модератором:
Новичок
Статус
Оффлайн
Регистрация
6 Фев 2020
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Опять всем привет, в данной теме пройдемся по vk_api.

vk_api, библиотека для многих популярных языков, в том числе и python.
она нужна для работы с данными в беседах, личке, группах, профиле и тд.

для начала установим данную библиотеку. pip install vk_api

импортируем ее: import vk_api

первым делом хочу ознакомить вас с ботами для вк групп.

для работы бота, нам нужно: токен группы и id группы.

токен можно получить в группе->Управление->Работа с API->последняя вкладка Long Poll API, проверяем чтобы он был включен.
возвращаемся в Ключи доступа, там создать ключи, выбираем нужные нам функции.
обязательно выберите 2 пункт, Разрешить приложению доступ к сообщениям сообщества.
Создаете.

ну а далее все как обычно, делаю простой код и объясняю в нем же.

Python:
import vk_api, random
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
# из лонг пулла импортируем нужные нам библиотеки.

token = "ваш токен"
vk = vk_api.VkApi(token=token) #авторизация
vk._auth_token() #в вк
longpoll = VkBotLongPoll(vk, 'ваш айди группы') #подключение longpoll

print("Бот запущен") #Пишем в консоль чтобы понять запущен ли бот.

while True: #бесконечный цикл
    for event in longpoll.listen(): #прослушиваем все сообщения

        # Если пришло новое сообщение
        if event.type == VkBotEventType.MESSAGE_NEW:
            mess = event.obj['text'] #преобразуем текст сообщения в переменную
            peer_id = event.obj['peer_id']
           
            if mess == "Привет!": #если текст сообщения = Привет!, отправляем сообщение.
                vk.method("messages.send", { "peer_id": peer_id, "message": "Прииивееетт!!", "random_id": random.randint(1, 2147483647)})
                #в строке выше из вк апи мы получаем метод отправки сообщения, а после указываем все нужные данные, такие как айди чата (лс/беседа), содержание отправленного ботом сообщения и рандомное айди для сообщения (а вообще я хз что это, никогда не обращал внимания).
               
                #Вообщем-то все. Бот готов
работа бота:
Посмотреть вложение 57588

Далее рассмотрим смену статуса с помощью vk_api.

Python:
import requests
import datetime
import time
#подключаем все нужные библиотеки

token = "" #ваш токен (страницы в вк)
timeKD = 30 #время смены статуса (каждые n секунд) в данном случае каждые 30

def startStatus(): #функция смены статуса
    getCountry = requests.get("https://api.vk.com/method/account.getProfileInfo?v=5.95&access_token={0}".format(token)) #получаем город из страницы в вк
    getCountry = getCountry.json()
    getCountry = getCountry["response"]
    getCountry = getCountry["city"]
    city = getCountry["title"] #преобразуем его в переменную city

    url = "http://api.openweathermap.org/data/2.5/weather" #url сайта с погодой, с которого будем получать погоду по городу из вк.
    parameters = {
    'q': city,
    'appid': "778d98cf94b6609bec655b872f24b907",
    'units':'metric',
    'lang' : 'en'} #параметры для запроса
    res = requests.get(url, params = parameters) #запрос
    data = res.json() #конвертируем в json

    today = datetime.datetime.today()
    nowT = (int(today.strftime('%H')))  #текущий час
    nowTs = str(nowT) + ':' + today.strftime('%M') #текущие минуты
    nowDate = today.strftime("%d.%m.%Y") #конвертируем дату в одну переменную

    if int(data['main']['temp']) <= 0:
        t = '?'
    elif int(data['main']['temp']) > 0 < 15:
        t = '☁'
    elif int(data['main']['temp']) >= 20:
        t = '☀'
    elif int(data['main']['temp']) >= 15 < 20:
        t = '?'
    #сверх условия ака получение стикера для погоды XDD
    statusSave = ("Time: {0} | Date: {1} | Weather in '{2}': {3}℃".format(nowTs, nowDate, data["name"], str(data["main"]["temp"])) + t) #сохраняем статус в одну переменную
    statusOut = "https://api.vk.com/method/status.set?text=" + str(statusSave) + "&v=5.95&access_token=" + token #конечная ссылка на замену статуса с помощью метода в вк апи status.set
    print(str(statusOut)) #выводим в консоль статус который вы поставили
    print("Статус был обновлён") #пишем что он был обновлен
    return requests.get(str(statusOut)) # заменяем статус.

while True: #бесконечный цикл
    startStatus()
    time.sleep(timeKD) #задержка на обновление статуса.
далее посмотрим на смену аватарки через вк_апи.

Python:
import vk_api #опять импортируем вк апи

token = "токен вашей страницы"

vk_session = vk_api.VkApi(login = 'ваш логин', password="ваш пароль", token=token)
vk = vk_session.get_api()

photos = vk.photos.get(count = 1, album_id = 'profile', rev = 1) #получаем последнюю фотографию

if photos ['items']:
    photo_id = response_ph['items'][0] #id последней фотографии
    ph_response_delete = vk.photos.delete(photo_id = photo_id['id']) #удаляем последнюю фотку
   
upload = vk_api.VkUpload(vk_session) #загружаем фото
photo = upload.photo_profile('название фотки на пк (photo.jpg)') #обновляем фото на странице в вк

response = vk.wall.get(count = 1) # получаем 1 запись со стены

if response ['items']:
    post = response['items'][0]
    post_response_delete = vk.wall.delete(post_id = post['id']) #и опять удаляем фото, чтобы не засирать себе страницу
С помощью данных "гайдов", можно провернуть прикольные вещи, например анимационная аватарка в вк, статус содержащий в себе что-то важное для вас или бота для вашей группы.
Всем удачи!
Думаю будет лучше использовать библиотеку saya (она тоже для Python), тем более использование намного легче, чем у vk_api
 
Начинающий
Статус
Оффлайн
Регистрация
6 Фев 2020
Сообщения
3
Реакции[?]
0
Поинты[?]
0
Опять всем привет, в данной теме пройдемся по vk_api.

vk_api, библиотека для многих популярных языков, в том числе и python.
она нужна для работы с данными в беседах, личке, группах, профиле и тд.

для начала установим данную библиотеку. pip install vk_api

импортируем ее: import vk_api

первым делом хочу ознакомить вас с ботами для вк групп.

для работы бота, нам нужно: токен группы и id группы.

токен можно получить в группе->Управление->Работа с API->последняя вкладка Long Poll API, проверяем чтобы он был включен.
возвращаемся в Ключи доступа, там создать ключи, выбираем нужные нам функции.
обязательно выберите 2 пункт, Разрешить приложению доступ к сообщениям сообщества.
Создаете.

ну а далее все как обычно, делаю простой код и объясняю в нем же.

Python:
import vk_api, random
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
# из лонг пулла импортируем нужные нам библиотеки.

token = "ваш токен"
vk = vk_api.VkApi(token=token) #авторизация
vk._auth_token() #в вк
longpoll = VkBotLongPoll(vk, 'ваш айди группы') #подключение longpoll

print("Бот запущен") #Пишем в консоль чтобы понять запущен ли бот.

while True: #бесконечный цикл
    for event in longpoll.listen(): #прослушиваем все сообщения

        # Если пришло новое сообщение
        if event.type == VkBotEventType.MESSAGE_NEW:
            mess = event.obj['text'] #преобразуем текст сообщения в переменную
            peer_id = event.obj['peer_id']
           
            if mess == "Привет!": #если текст сообщения = Привет!, отправляем сообщение.
                vk.method("messages.send", { "peer_id": peer_id, "message": "Прииивееетт!!", "random_id": random.randint(1, 2147483647)})
                #в строке выше из вк апи мы получаем метод отправки сообщения, а после указываем все нужные данные, такие как айди чата (лс/беседа), содержание отправленного ботом сообщения и рандомное айди для сообщения (а вообще я хз что это, никогда не обращал внимания).
               
                #Вообщем-то все. Бот готов
работа бота:
Посмотреть вложение 57588

Далее рассмотрим смену статуса с помощью vk_api.

Python:
import requests
import datetime
import time
#подключаем все нужные библиотеки

token = "" #ваш токен (страницы в вк)
timeKD = 30 #время смены статуса (каждые n секунд) в данном случае каждые 30

def startStatus(): #функция смены статуса
    getCountry = requests.get("https://api.vk.com/method/account.getProfileInfo?v=5.95&access_token={0}".format(token)) #получаем город из страницы в вк
    getCountry = getCountry.json()
    getCountry = getCountry["response"]
    getCountry = getCountry["city"]
    city = getCountry["title"] #преобразуем его в переменную city

    url = "http://api.openweathermap.org/data/2.5/weather" #url сайта с погодой, с которого будем получать погоду по городу из вк.
    parameters = {
    'q': city,
    'appid': "778d98cf94b6609bec655b872f24b907",
    'units':'metric',
    'lang' : 'en'} #параметры для запроса
    res = requests.get(url, params = parameters) #запрос
    data = res.json() #конвертируем в json

    today = datetime.datetime.today()
    nowT = (int(today.strftime('%H')))  #текущий час
    nowTs = str(nowT) + ':' + today.strftime('%M') #текущие минуты
    nowDate = today.strftime("%d.%m.%Y") #конвертируем дату в одну переменную

    if int(data['main']['temp']) <= 0:
        t = '?'
    elif int(data['main']['temp']) > 0 < 15:
        t = '☁'
    elif int(data['main']['temp']) >= 20:
        t = '☀'
    elif int(data['main']['temp']) >= 15 < 20:
        t = '?'
    #сверх условия ака получение стикера для погоды XDD
    statusSave = ("Time: {0} | Date: {1} | Weather in '{2}': {3}℃".format(nowTs, nowDate, data["name"], str(data["main"]["temp"])) + t) #сохраняем статус в одну переменную
    statusOut = "https://api.vk.com/method/status.set?text=" + str(statusSave) + "&v=5.95&access_token=" + token #конечная ссылка на замену статуса с помощью метода в вк апи status.set
    print(str(statusOut)) #выводим в консоль статус который вы поставили
    print("Статус был обновлён") #пишем что он был обновлен
    return requests.get(str(statusOut)) # заменяем статус.

while True: #бесконечный цикл
    startStatus()
    time.sleep(timeKD) #задержка на обновление статуса.
далее посмотрим на смену аватарки через вк_апи.

Python:
import vk_api #опять импортируем вк апи

token = "токен вашей страницы"

vk_session = vk_api.VkApi(login = 'ваш логин', password="ваш пароль", token=token)
vk = vk_session.get_api()

photos = vk.photos.get(count = 1, album_id = 'profile', rev = 1) #получаем последнюю фотографию

if photos ['items']:
    photo_id = response_ph['items'][0] #id последней фотографии
    ph_response_delete = vk.photos.delete(photo_id = photo_id['id']) #удаляем последнюю фотку
   
upload = vk_api.VkUpload(vk_session) #загружаем фото
photo = upload.photo_profile('название фотки на пк (photo.jpg)') #обновляем фото на странице в вк

response = vk.wall.get(count = 1) # получаем 1 запись со стены

if response ['items']:
    post = response['items'][0]
    post_response_delete = vk.wall.delete(post_id = post['id']) #и опять удаляем фото, чтобы не засирать себе страницу
С помощью данных "гайдов", можно провернуть прикольные вещи, например анимационная аватарка в вк, статус содержащий в себе что-то важное для вас или бота для вашей группы.
Всем удачи!
ого, спасибо, помог чутка
 
Начинающий
Статус
Оффлайн
Регистрация
11 Фев 2020
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Если Можеш напеши как сделать чтобы бот отвечал рандомна
 
substandard rank
Забаненный
Статус
Оффлайн
Регистрация
21 Янв 2019
Сообщения
424
Реакции[?]
113
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Если Можеш напеши как сделать чтобы бот отвечал рандомна
Python:
import random
rand = ["Привет", "Как дела?", "что-то еще"]
choice = random.choice(rand)
 vk.method("messages.send", { "peer_id": peer_id, "message": choice, "random_id": random.randint(1, 2147483647)})
 
Начинающий
Статус
Оффлайн
Регистрация
11 Фев 2020
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Сверху Снизу