@truettwo

Код для автопостинга в ВК, не работает access token, как получить работающий?

Перепробовал уже все, перечитал документацию и тд. Но все равно error_code': 15, 'error_subcode': 1133, 'error_msg': 'Access denied: no access to call this method. It cannot be called with current scopes.'

Вот сам код

import requests
import json

# Здесь укажите ваш токен доступа и ID группы
token = "ваш_токен"
group_id = "ваш_id_группы"

def get_wall_upload_server():
"""Получение URL для загрузки фотографии на сервер VK."""
try:
response = requests.get(
'https://api.vk.com/method/photos.getWallUploadServer',
params={
'access_token': token,
'group_id': group_id,
'v': '5.101'
}
).json()
return response['response']['upload_url']
except KeyError:
print("Ошибка при получении URL загрузки:", response)
return None

def save_photo(upload_response):
"""Сохранение загруженной фотографии на сервере VK."""
try:
response = requests.get(
'https://api.vk.com/method/photos.saveWallPhoto',
params={
'access_token': token,
'group_id': group_id,
'photo': upload_response['photo'],
'server': upload_response['server'],
'hash': upload_response['hash'],
'v': '5.101'
}
).json()
photo = response['response'][0]
return f"photo{photo['owner_id']}_{photo['id']}"
except KeyError:
print("Ошибка при сохранении фотографии:", response)
return None

def post_to_wall(photo_attachment):
"""Публикация записи на стене группы."""
try:
response = requests.get(
'https://api.vk.com/method/wall.post',
params={
'owner_id': f"-{group_id}", # Отрицательное значение для ID сообщества
'from_group': '1',
'attachments': photo_attachment,
'access_token': token,
'message': 'Тестовая публикация с фото',
'v': '5.101'
}
).json()
if 'response' in response:
print("Публикация успешно выполнена, ID записи:", response['response']['post_id'])
else:
print("Ошибка при публикации:", response)
except Exception as e:
print("Исключение при публикации:", e)

def main():
"""Основная функция для публикации фото на стене."""
upload_url = get_wall_upload_server()
if not upload_url:
return

try:
with open('123.jpg', 'rb') as file:
upload_response = requests.post(upload_url, files={'file1': file}).json()
if 'photo' not in upload_response:
print("Ошибка при загрузке фото:", upload_response)
return
except FileNotFoundError:
print("Файл '123.jpg' не найден.")
return

photo_attachment = save_photo(upload_response)
if photo_attachment:
post_to_wall(photo_attachment)

if __name__ == '__main__':
main()
  • Вопрос задан
  • 16 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
25 нояб. 2024, в 02:45
2000 руб./за проект
24 нояб. 2024, в 23:46
20000 руб./за проект