substandard rank
-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Опять всем привет, в данной теме пройдемся по vk_api.
vk_api, библиотека для многих популярных языков, в том числе и python.
она нужна для работы с данными в беседах, личке, группах, профиле и тд.
для начала установим данную библиотеку. pip install vk_api
импортируем ее: import vk_api
первым делом хочу ознакомить вас с ботами для вк групп.
для работы бота, нам нужно: токен группы и id группы.
токен можно получить в группе->Управление->Работа с API->последняя вкладка Long Poll API, проверяем чтобы он был включен.
возвращаемся в Ключи доступа, там создать ключи, выбираем нужные нам функции.
обязательно выберите 2 пункт, Разрешить приложению доступ к сообщениям сообщества.
Создаете.
ну а далее все как обычно, делаю простой код и объясняю в нем же.
работа бота:
Далее рассмотрим смену статуса с помощью 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)})
#в строке выше из вк апи мы получаем метод отправки сообщения, а после указываем все нужные данные, такие как айди чата (лс/беседа), содержание отправленного ботом сообщения и рандомное айди для сообщения (а вообще я хз что это, никогда не обращал внимания).
#Вообщем-то все. Бот готов
Далее рассмотрим смену статуса с помощью 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']) #и опять удаляем фото, чтобы не засирать себе страницу
Всем удачи!