r00t
Гуру форума
- Регистрация
- 30 Июл 2006
- Сообщения
- 192
- Реакции
- 67
- Автор темы
- #1
Скрипт для отложенных постов в вк. Я пилю в группу только картинки без текста, поэтому функционала хватает.
Создайте папку upload рядом со скриптом и туда заливайте картинки.
Из минусов: полное отсутствие обработки исключений возникающих в процессе работы
Python 3.4
Зависимости:
pip3 install vk==2.0-beta
или
C:\Python34\python.exe -m pip install vk==2.0-beta
Ограничения вк 3 запроса в секунду, в случае проблем меняем значение в time.sleep(1)
Надеюсь кому-то будет полезно.
Создайте папку upload рядом со скриптом и туда заливайте картинки.
Из минусов: полное отсутствие обработки исключений возникающих в процессе работы
Python 3.4
Зависимости:
pip3 install vk==2.0-beta
или
C:\Python34\python.exe -m pip install vk==2.0-beta
Ограничения вк 3 запроса в секунду, в случае проблем меняем значение в time.sleep(1)
Код:
# -*- coding: utf-8 -*-
import os
import vk
import requests
import json
import time
UP_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'upload')
group_id = '-' #ID группы со знаком минус в начале
vkapi = vk.OAuthAPI(app_id='', user_login='', user_password='',
scope='offline,photos,wall,groups') # ID Standalone приложения, логин и пароль вк
def wall_post(filename, time_post):
img = {'photo': (filename, open(UP_DIR + '\\' + filename, 'rb'))}
up_srv = vkapi.photos.getWallUploadServer(group_id=group_id[1:])
up_file = requests.post(up_srv['upload_url'], files=img)
result = json.loads(up_file.text)
save_file = vkapi.photos.saveWallPhoto(server=result['server'], photo=result['photo'], hash=result['hash'],
group_id=group_id[1:])
attachments = 'photo' + str(save_file[0]['owner_id']) + '_' + str(save_file[0]['id'])
post = vkapi.wall.post(owner_id=group_id, from_group='1', attachments=attachments, publish_date=time_post)
return post
time_post = int('') # Время первой публикации в формате unix timestamp
files = os.listdir(UP_DIR)
for file in files:
poster = wall_post(file, time_post)
files.remove(file)
time.sleep(1)
time_post += 3 * 60 * 60 # Интервал для публикации записей. В данном случае 3 часа
Надеюсь кому-то будет полезно.
Последнее редактирование: