• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

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

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

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

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

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

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

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

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

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

Python:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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']) #и опять удаляем фото, чтобы не засирать себе страницу

С помощью данных "гайдов", можно провернуть прикольные вещи, например анимационная аватарка в вк, статус содержащий в себе что-то важное для вас или бота для вашей группы.
Всем удачи!
 
1580902454481.png
что не так с сообщениями?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вообще если ты копировал мой код, то у тебя должно все работать. Возможно ты отправил не текст, а смайлик или картинку, с учетом того что ты читаешь все сообщения, а не только Привет!
А вообще гадать так себе, что ты менял в моем коде?
 
Вообще если ты копировал мой код, то у тебя должно все работать. Возможно ты отправил не текст, а смайлик или картинку, с учетом того что ты читаешь все сообщения, а не только Привет!
А вообще гадать так себе, что ты менял в моем коде?
ну только ид группы и токен вставил , ща снова попробую
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Раньше кодил на PyGame, не думал, что Python и гайды по нему так далеко зайдут... Ну ладно.
 
  • Ахаха
Реакции: sove
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
токен типа LONGPOOL API ?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Так ебать, разжёвывай мне тут, что и как. Ну пожалуйста) Нихуя не понятно, первый раз пасщу пишу бота на Python.

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

Python:
Expand Collapse Copy
token = ""

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


Python:
Expand Collapse Copy
longpoll = VkBotLongPoll(vk, '') #подключение longpoll

Соре, я просто балдаёб)
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Так ебать, разжёвывай мне тут, что и как. Ну пожалуйста) Нихуя не понятно, первый раз пасщу пишу бота на Python.

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

Python:
Expand Collapse Copy
token = ""

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


Python:
Expand Collapse Copy
longpoll = VkBotLongPoll(vk, '') #подключение longpoll

Соре, я просто балдаёб)
1. тот ключ который ты создал
2. айди сверху, если там не idцифры, берешь название на сайте для получения айпи вставляешь его во 2 штуку
 
1.2. Запрещено выделять всё сообщение жирным шрифтом, курсивом, подчеркиванием, цветом. Пользуйтесь BB-кодами с умом, выделяя лишь самое важное в теме, на что следует обратить внимание.
1580902399436.png


ТЫ МЕНЯ ГДЕ-ТО НАЕБАЛ)
 
Последнее редактирование модератором:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1.2. Запрещено выделять всё сообщение жирным шрифтом, курсивом, подчеркиванием, цветом. Пользуйтесь BB-кодами с умом, выделяя лишь самое важное в теме, на что следует обратить внимание.
Последнее редактирование модератором:
Опять всем привет, в данной теме пройдемся по vk_api.

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

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

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

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

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

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

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

Python:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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
 
Опять всем привет, в данной теме пройдемся по vk_api.

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

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

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

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

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

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

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

Python:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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']) #и опять удаляем фото, чтобы не засирать себе страницу

С помощью данных "гайдов", можно провернуть прикольные вещи, например анимационная аватарка в вк, статус содержащий в себе что-то важное для вас или бота для вашей группы.
Всем удачи!
ого, спасибо, помог чутка
 
Если Можеш напеши как сделать чтобы бот отвечал рандомна
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Если Можеш напеши как сделать чтобы бот отвечал рандомна
Python:
Expand Collapse Copy
import random
rand = ["Привет", "Как дела?", "что-то еще"]
choice = random.choice(rand)
 vk.method("messages.send", { "peer_id": peer_id, "message": choice, "random_id": random.randint(1, 2147483647)})
 
Назад
Сверху Снизу