Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Using telegram bot local server can't send / receive Files #133

Open
kettly1260 opened this issue Mar 3, 2023 · 3 comments
Open
Labels

Comments

@kettly1260
Copy link

kettly1260 commented Mar 3, 2023

Describe the bug
Using telegram bot local server can't send / receive Files

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
When I change the telegram api to the local server,the bot can received the text,but when I sent the pictures or
any files, the bot prompts that
"Unknown error has occurred while trying to process this message. See log for details.

InvalidToken() " 。

When I received files, nothing prompted and couldn't receive them

Screenshots
If applicable, add screenshots to help explain your problem.

Version information (please complete the following information):

  • OS: [e.g. iOS]
  • Detailed Python, EFB and module versions: (you can obtain this by running ehforwarderbot --version)
EH Forwarder Bot
Version: 2.1.1
Python version:
3.8

Master channel:
   EFB Telegram Master Channel 2.3.1

Slave channel:
   WeChat Slave (blueset.wechat, 2.0.6.dev10)

Middleware:
- MP InstantView Middleware (catbaron.mp_instantview, 0.3.1)
- Search Message Middleware (catbaron.search_msg, 0.1.0)

Additional context
elete_chat_photo': False, 'channel_chat_created': False, 'caption_entities': [], 'from': {'id': xxxxx, 'is_bot': False, 'first_name': 'xxxx', 'language_code': 'zh-hans'}}, 'update_id': xxxxx}.
Traceback (most recent call last):
File "/home/ubuntu/.local/lib/python3.8/site-packages/efb_telegram_master/master_message.py", line 103, in message_worker
self.msg(update, context)
File "/home/ubuntu/.local/lib/python3.8/site-packages/efb_telegram_master/master_message.py", line 207, in msg
return self.process_telegram_message(update, context, destination, quote=quote, edited=edited)
File "/home/ubuntu/.local/lib/python3.8/site-packages/efb_telegram_master/master_message.py", line 426, in process_telegram_message
if m.file:
File "/home/ubuntu/.local/lib/python3.8/site-packages/efb_telegram_master/message.py", line 130, in get_file
self._load_file()
File "/home/ubuntu/.local/lib/python3.8/site-packages/efb_telegram_master/message.py", line 77, in _load_file
file_meta.download(out=file)
File "/home/ubuntu/.local/lib/python3.8/site-packages/telegram/files/file.py", line 148, in download
buf = self.bot.request.retrieve(url)
File "/home/ubuntu/.local/lib/python3.8/site-packages/telegram/utils/request.py", line 385, in retrieve
return self._request_wrapper('GET', url, **urlopen_kwargs)
File "/home/ubuntu/.local/lib/python3.8/site-packages/telegram/utils/request.py", line 281, in _request_wrapper
raise InvalidToken()
telegram.error.InvalidToken: Invalid token

@kettly1260 kettly1260 added the bug label Mar 3, 2023
@zeXtreme
Copy link

zeXtreme commented Sep 5, 2023

我也遇到这个问题,但是我可以接收文件,但是发送文件时会提示

Message is not sent.

InvalidToken()

以下是我使用的主端和从端版本

您正在使用 EFB Telegram 主端 2.3.1,运行于默认配置档案与实例、EFB 版本 2.1.1。
已激活 1 个从端:
- 💬 WeChat Slave (blueset.wechat, 2.0.7)

日志

stderr: 2023-09-05 08:47:10,448 [ERROR]: efb_telegram_master.master_message (master_message.process_telegram_message; master_message.py:422)
stderr:     Message is not sent. (update: {'message': {'caption_entities': [], 'message_id': 941506, 'new_chat_members': [], 'new_chat_photo': [], 'entities': [], 'reply_to_message': {'edit_date': 1693874817, 'caption_entities': [], 'message_id': 941505, 'new_chat_members': [], 'new_chat_photo': [], 'entities': [], 'text': '回复该消息以与 ‘文件传输助手’ @ ‘💬 WeChat Slave’ 对话。', 'delete_chat_photo': False, 'chat': {'first_name': 'xxxxxx', 'type': 'private', 'id': xxxxxxxxxxx}, 'channel_chat_created': False, 'group_chat_created': False, 'photo': [], 'date': 1693874813, 'supergroup_chat_created': False, 'from': {'is_bot': True, 'first_name': 'xxxxxxxxxxx', 'id': xxxxxxxxxxx, 'username': 'xxxxxxxxx'}}, 'delete_chat_photo': False, 'chat': {'first_name': 'xxxxxxxxx', 'type': 'private', 'id': xxxxxxxxx}, 'channel_chat_created': False, 'group_chat_created': False, 'photo': [], 'date': 1693874826, 'supergroup_chat_created': False, 'document': {'file_unique_id': 'AgADEgsAAkmOuFc', 'file_size': 13654, 'mime_type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'file_name': 'xxxxxx.xlsx', 'file_id': 'BQACAgUAAxkBAAEOXcJk9nqKu2CLCBtVrMU6VtqIOAaDPAACEgsAAkmOuFc2BlO2pnttLjAE'}, 'from': {'is_bot': False, 'first_name': 'xxxxxxxxx', 'id': xxxxxxxxxxxxx, 'language_code': 'zh-hans'}}, 'update_id': 299213794}, exception: Invalid token)
stderr: Traceback (most recent call last):
stderr:   File "/app/.venv/lib/python3.10/site-packages/efb_telegram_master/master_message.py", line 405, in process_telegram_message
stderr:     slave_msg = coordinator.send_message(m)
stderr:   File "/app/.venv/lib/python3.10/site-packages/ehforwarderbot/coordinator.py", line 108, in send_message
stderr:     msg.verify()
stderr:   File "/app/.venv/lib/python3.10/site-packages/ehforwarderbot/message.py", line 519, in verify
stderr:     assert hasattr(self.file, "read") or not hasattr(self.file, "close"), \
stderr:   File "/app/.venv/lib/python3.10/site-packages/efb_telegram_master/message.py", line 130, in get_file
stderr:     self._load_file()
stderr:   File "/app/.venv/lib/python3.10/site-packages/efb_telegram_master/message.py", line 77, in _load_file
stderr:     file_meta.download(out=file)
stderr:   File "/app/.venv/lib/python3.10/site-packages/telegram/files/file.py", line 148, in download
stderr:     buf = self.bot.request.retrieve(url)
stderr:   File "/app/.venv/lib/python3.10/site-packages/telegram/utils/request.py", line 385, in retrieve
stderr:     return self._request_wrapper('GET', url, **urlopen_kwargs)
stderr:   File "/app/.venv/lib/python3.10/site-packages/telegram/utils/request.py", line 281, in _request_wrapper
stderr:     raise InvalidToken()
stderr: telegram.error.InvalidToken: Invalid token
stderr: 2023-09-05 08:47:10,862 [ERROR]: efb_telegram_master.master_message (master_message.message_worker; master_message.py:105)
stderr:     Error [InvalidToken()] occurred while processing update {'message': {'caption_entities': [], 'message_id': 941506, 'new_chat_members': [], 'new_chat_photo': [], 'entities': [], 'reply_to_message': {'edit_date': 1693874817, 'caption_entities': [], 'message_id': 941505, 'new_chat_members': [], 'new_chat_photo': [], 'entities': [], 'text': '回复该消息以与 ‘文件传输助手’ @ ‘💬 WeChat Slave’ 对话。', 'delete_chat_photo': False, 'chat': {'first_name': 'xxxxxx', 'type': 'private', 'id': xxxxxxx}, 'channel_chat_created': False, 'group_chat_created': False, 'photo': [], 'date': 1693874813, 'supergroup_chat_created': False, 'from': {'is_bot': True, 'first_name': 'xxxxxxxxxxx', 'id': xxxxxxxxxxxx, 'username': 'xxxxxxxxx'}}, 'delete_chat_photo': False, 'chat': {'first_name': 'xxxxxxxxx', 'type': 'private', 'id': xxxxxxxxxxxxx}, 'channel_chat_created': False, 'group_chat_created': False, 'photo': [], 'date': 1693874826, 'supergroup_chat_created': False, 'document': {'file_unique_id': 'AgADEgsAAkmOuFc', 'file_size': 13654, 'mime_type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'file_name': 'xxxx.xlsx', 'file_id': 'BQACAgUAAxkBAAEOXcJk9nqKu2CLCBtVrMU6VtqIOAaDPAACEgsAAkmOuFc2BlO2pnttLjAE'}, 'from': {'is_bot': False, 'first_name': 'xxxxxxx', 'id': xxxxxxxx, 'language_code': 'zh-hans'}}, 'update_id': 299213794}.
stderr: Traceback (most recent call last):
stderr:   File "/app/.venv/lib/python3.10/site-packages/efb_telegram_master/master_message.py", line 103, in message_worker
stderr:     self.msg(update, context)
stderr:   File "/app/.venv/lib/python3.10/site-packages/efb_telegram_master/master_message.py", line 207, in msg
stderr:     return self.process_telegram_message(update, context, destination, quote=quote, edited=edited)
stderr:   File "/app/.venv/lib/python3.10/site-packages/efb_telegram_master/master_message.py", line 426, in process_telegram_message
stderr:     if m.file:
stderr:   File "/app/.venv/lib/python3.10/site-packages/efb_telegram_master/message.py", line 130, in get_file
stderr:     self._load_file()
stderr:   File "/app/.venv/lib/python3.10/site-packages/efb_telegram_master/message.py", line 77, in _load_file
stderr:     file_meta.download(out=file)
stderr:   File "/app/.venv/lib/python3.10/site-packages/telegram/files/file.py", line 148, in download
stderr:     buf = self.bot.request.retrieve(url)
stderr:   File "/app/.venv/lib/python3.10/site-packages/telegram/utils/request.py", line 385, in retrieve
stderr:     return self._request_wrapper('GET', url, **urlopen_kwargs)
stderr:   File "/app/.venv/lib/python3.10/site-packages/telegram/utils/request.py", line 281, in _request_wrapper
stderr:     raise InvalidToken()
stderr: telegram.error.InvalidToken: Invalid token

@zeXtreme
Copy link

zeXtreme commented Sep 5, 2023

我参考这个用nginx将接收到的文件暴露出来解决了问题

@pangxiezhou
Copy link

问题1:发送文件失败,提示 FileNotFoundError: [Errno 2] No such file or directory: 'file:///tmp/tmpp5_qox2o’

解决方法:efb_telegram_master/slave_message.py文件中process_file_obj 修改为:

def process_file_obj(self, file: IO[bytes], path: Union[str, Path]) -> Union[IO[bytes], str]:
    return file

问题2:接收文件失败,提示invalid Token

解决方法:profiles/default/blueset.telegram/config.yaml 中 api_base_file_url 填写telegram bot api的work dir,例如:

api_base_file_url: "/home/pangxiezhou/.telegram_bot_server/"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants