Search code examples
httprequesttelegram-botpython-telegram-bottelepot

bot.sendAudio and bot.sendPhoto methods in telepot return { 'error code' : 400 , 'Bad Request: wrong HTTP URL specified'}


I am using the

telepot.Bot(bot_id).sendAudio(chat_id, file_url)

method, is supposed to send the file, but it returns

Traceback (most recent call last):
  File "C:\Users\vinu\AppData\Local\Programs\Python\Python37\lib\site-packages\telepot\__init__.py", line 1158, in collector
    callback(item)
  File "bot.py", line 72, in handle
    bot.sendAudio(chat_id, url)
  File "C:\Users\vinu\AppData\Local\Programs\Python\Python37\lib\site-packages\telepot\__init__.py", line 556, in sendAudio
    return self._api_request_with_file('sendAudio', _rectify(p), 'audio', audio)
  File "C:\Users\vinu\AppData\Local\Programs\Python\Python37\lib\site-packages\telepot\__init__.py", line 496, in _api_request_with_file
    return self._api_request(method, _rectify(params), **kwargs)
  File "C:\Users\vinu\AppData\Local\Programs\Python\Python37\lib\site-packages\telepot\__init__.py", line 491, in _api_request
    return api.request((self._token, method, params, files), **kwargs)
  File "C:\Users\vinu\AppData\Local\Programs\Python\Python37\lib\site-packages\telepot\api.py", line 155, in request
    return _parse(r)
  File "C:\Users\vinu\AppData\Local\Programs\Python\Python37\lib\site-packages\telepot\api.py", line 150, in _parse
    raise exception.TelegramError(description, error_code, data)
telepot.exception.TelegramError: ('Bad Request: wrong HTTP URL specified', 400, {'ok': False, 'error_code': 400, 'description': 'Bad Request: wrong HTTP URL specified'})

the same happened with sendPhoto, but I used python requests to send photos

response =requests.post('https://api.telegram.org/bot/sendphoto', files=files`)

I either want to know why the sendAudio() and sendPhoto() methods work or the http url to send audio


Solution

  • with telepot bot.SendPhoto and bot.sendVideo and bot.sendAudio work either with files and urls that contains a file.

    In your case it seems that you used and url and it was uncorrect, can you share it?

    In my experience it can be because the url contains & instead of &