@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()
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы