отправляет с использованием группового токена
This commit is contained in:
+83
@@ -0,0 +1,83 @@
|
||||
import os
|
||||
import sys
|
||||
import requests
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# ---------------------------
|
||||
# ENV
|
||||
# ---------------------------
|
||||
load_dotenv()
|
||||
|
||||
ACCESS_TOKEN = os.getenv("VK_ACCESS_TOKEN")
|
||||
GROUP_ID = int(os.getenv("VK_GROUP_ID", "0"))
|
||||
API_VERSION = os.getenv("VK_API_VERSION", "5.199")
|
||||
PHOTO_ATTACHMENT = os.getenv("VK_PHOTO_ATTACHMENT")
|
||||
|
||||
POST_TEXT = """Привет от Питона 🐍
|
||||
|
||||
Запись на услугу доступна по ссылке:
|
||||
|
||||
https://vk.com/uslugi-27937673
|
||||
|
||||
https://sekretydolgoletiya.ru
|
||||
"""
|
||||
|
||||
|
||||
# ---------------------------
|
||||
# VALIDATION
|
||||
# ---------------------------
|
||||
def validate_env():
|
||||
missing = []
|
||||
|
||||
if not ACCESS_TOKEN:
|
||||
missing.append("VK_GROUP_ACCESS_TOKEN")
|
||||
if not GROUP_ID:
|
||||
missing.append("VK_GROUP_ID")
|
||||
if not PHOTO_ATTACHMENT:
|
||||
missing.append("VK_PHOTO_ATTACHMENT")
|
||||
|
||||
if missing:
|
||||
print(f"❌ Не заданы переменные окружения: {', '.join(missing)}")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
# ---------------------------
|
||||
# VK API
|
||||
# ---------------------------
|
||||
def vk_api(method: str, params: dict):
|
||||
response = requests.post(
|
||||
f"https://api.vk.com/method/{method}",
|
||||
data={
|
||||
**params,
|
||||
"access_token": ACCESS_TOKEN,
|
||||
"v": API_VERSION,
|
||||
},
|
||||
timeout=15,
|
||||
).json()
|
||||
|
||||
if "error" in response:
|
||||
error = response["error"]
|
||||
raise RuntimeError(f"VK API error {error['error_code']}: {error['error_msg']}")
|
||||
|
||||
return response["response"]
|
||||
|
||||
|
||||
# ---------------------------
|
||||
# MAIN
|
||||
# ---------------------------
|
||||
def post_to_wall():
|
||||
vk_api(
|
||||
"wall.post",
|
||||
{
|
||||
"owner_id": GROUP_ID,
|
||||
"from_group": 1,
|
||||
"message": POST_TEXT.strip(),
|
||||
"attachments": PHOTO_ATTACHMENT,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
validate_env()
|
||||
post_to_wall()
|
||||
print("✅ Пост успешно опубликован")
|
||||
Reference in New Issue
Block a user