Перепробовал уже все, перечитал документацию и тд. Но все равно 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()