@Yung_Cod3r

Ошибка 405 при работе с Virustotal API?

Здравствуйте! Хочу понять, что не так. Хотел сделать бота "антивирус", он отправляет файл на Virustotal и получает результат оттуда! Работаю с их API - https://developers.virustotal.com/reference#api-re...

Но, при попытке вернуть результаты сканирования получаю код ошибки 405.
Мой код:

import telebot
import requests
import json


vt_url = "https://www.virustotal.com/vtapi/v2/file/scan"
parameters = {"apikey": ""}
bot = telebot.TeleBot("")
keyboard = telebot.types.ReplyKeyboardMarkup(True, True)
keyboard.row("Проверить файл")


@bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, "Привет! Этот бот поможет тебе проверить файл на вирусы!", reply_markup=keyboard)

@bot.message_handler(func=lambda message: message.text.lower() == "проверить файл", content_types = ['document', 'text'])
def send_file(message):
    bot_message = bot.send_message(message.chat.id, "Отправьте файл для проверки!")
    bot.register_next_step_handler(bot_message, check_file)

def check_file(message):

    file_info = bot.get_file(message.document.file_id)
    downloaded_file = bot.download_file(file_info.file_path)

    src = 'C:/Users/Test/Desktop/test/test/' + message.document.file_name
    with open(src, 'wb') as new_file:
        new_file.write(downloaded_file)
        
    files = {'file': (f'{message.document.file_name}', open(f'{message.document.file_name}', 'rb'))}
    response = requests.post(vt_url, files=files, params=parameters)
    if response.status_code == 200:
        result = response.json()
        file_id = result.get('scan_id')
        params = {'apikey': '3c2593f315cf033afa5f40832d9770dfec033319c966b4c17f01cdb160c08584', 'resource': f'{file_id}'}
        response = requests.get(vt_url, params=params)
        if response.status_code == 200:
            print(response.json())
        else:
            print(response.status_code)

bot.polling(none_stop=True)


Хотелось бы понять, что её возбуждает, и как это решить. Заранее спасибо!
  • Вопрос задан
  • 31 просмотр
Решения вопроса 1
ошибка вам явно говорит что вы исполдьзуете не тот метод
в доке написано: curl --request POST
а в коде: requests.get
для гет запроса там надо использовать другую ручку
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы