python telegram bot Post 来自磁盘的图像文件
python telegram bot Post an image file from disk
Result after google [查看 Post 磁盘中的图像文件]
In[2]: from telegram import Bot
In[3]: bot = Bot(token)
In[4]: update = bot.get_updates()[0]
In[5]: update
Out[5]: <telegram.update.Update at 0x1a295c18>
In[6]: chat_id = update["message"]["chat"]["id"]
In[7]: bot.send_photo(chat_id=chat_id, photo=open("test.jpg", "rb"))
Traceback (most recent call last):
File "<ipython-input-9-4c19142e0fd3>", line 1, in <module>
bot.send_photo(chat_id=chat_id, photo=open("test.jpg", "rb"))
File "C:\Users\Cheung\Anaconda3\lib\site-packages\telegram\bot.py", line 60, in decorator
result = func(self, *args, **kwargs)
File "C:\Users\Cheung\Anaconda3\lib\site-packages\telegram\bot.py", line 85, in decorator
result = self._request.post(url, data, timeout=kwargs.get('timeout'))
File "C:\Users\Cheung\Anaconda3\lib\site-packages\telegram\utils\request.py", line 265, in post
'POST', url, body=data.to_form(), headers=data.headers, **urlopen_kwargs)
File "C:\Users\Cheung\Anaconda3\lib\site-packages\telegram\utils\request.py", line 196, in _request_wrapper
raise NetworkError('urllib3 HTTPError {0}'.format(error))
NetworkError: urllib3 HTTPError ('Connection aborted.', timeout('The write operation timed out',))
Actual Coding and error
为什么这不起作用?
也许我应该使用其他方法来获取 file_id?但我如何获得它?
您使用的是代理服务器吗?这可能是这个问题背后的原因。您是在本地机器还是远程服务器上尝试这些代码?如果是远程服务器,请在本地机器上尝试。
您的代码没有任何问题。
此错误是部分用户的临时错误。所以,你可能想稍等一下..
尝试增加上传文件的超时时间。
bot.send_photo(chat_id=chat_id, photo=open("test.jpg", "rb"), timeout=100)
Result after google [查看 Post 磁盘中的图像文件]
In[2]: from telegram import Bot
In[3]: bot = Bot(token)
In[4]: update = bot.get_updates()[0]
In[5]: update
Out[5]: <telegram.update.Update at 0x1a295c18>
In[6]: chat_id = update["message"]["chat"]["id"]
In[7]: bot.send_photo(chat_id=chat_id, photo=open("test.jpg", "rb"))
Traceback (most recent call last):
File "<ipython-input-9-4c19142e0fd3>", line 1, in <module>
bot.send_photo(chat_id=chat_id, photo=open("test.jpg", "rb"))
File "C:\Users\Cheung\Anaconda3\lib\site-packages\telegram\bot.py", line 60, in decorator
result = func(self, *args, **kwargs)
File "C:\Users\Cheung\Anaconda3\lib\site-packages\telegram\bot.py", line 85, in decorator
result = self._request.post(url, data, timeout=kwargs.get('timeout'))
File "C:\Users\Cheung\Anaconda3\lib\site-packages\telegram\utils\request.py", line 265, in post
'POST', url, body=data.to_form(), headers=data.headers, **urlopen_kwargs)
File "C:\Users\Cheung\Anaconda3\lib\site-packages\telegram\utils\request.py", line 196, in _request_wrapper
raise NetworkError('urllib3 HTTPError {0}'.format(error))
NetworkError: urllib3 HTTPError ('Connection aborted.', timeout('The write operation timed out',))
Actual Coding and error
为什么这不起作用?
也许我应该使用其他方法来获取 file_id?但我如何获得它?
您使用的是代理服务器吗?这可能是这个问题背后的原因。您是在本地机器还是远程服务器上尝试这些代码?如果是远程服务器,请在本地机器上尝试。
您的代码没有任何问题。
此错误是部分用户的临时错误。所以,你可能想稍等一下..
尝试增加上传文件的超时时间。
bot.send_photo(chat_id=chat_id, photo=open("test.jpg", "rb"), timeout=100)