Skip to content

telegram设置代理时报错 #12

Description

@m1kanse

堆栈打印如下
self._request_param_check(name="proxy", get_updates=False)
"/opt/EchoBot/.venv/lib/python3.12/site-packages/telegram/ext/_applicationbuilder.py", line 472, in _request_param_check
raise RuntimeError(_TWO_ARGS_REQ.format(name, "request
instance"))
RuntimeError: The parameter proxy may only be set, if no request
instance was set.

经排查是telegram新版api的兼容性问题,API——proxy 和自定义 request 不能同时设置。

建议将echobot/channels/platforms/telegram.py中
把下面这些行(从 self._running = True 到 self.config.proxy,):

      self._running = True
      request = HTTPXRequest(
          connection_pool_size=16,
          pool_timeout=5.0,
          connect_timeout=30.0,
          read_timeout=30.0,
      )
      builder = (
          Application.builder()
          .token(self.config.bot_token)
          .request(request)
          .get_updates_request(request)
      )
      if self.config.proxy:
          builder = builder.proxy(self.config.proxy).get_updates_proxy(
              self.config.proxy,
          )

替换成:

      self._running = True
      if self.config.proxy:
          builder = (
              Application.builder()
              .token(self.config.bot_token)
              .proxy(self.config.proxy)
              .get_updates_proxy(self.config.proxy)
          )
      else:
          request = HTTPXRequest(
              connection_pool_size=16,
              pool_timeout=5.0,
              connect_timeout=30.0,
              read_timeout=30.0,
          )
          builder = (
              Application.builder()
              .token(self.config.bot_token)
              .request(request)
              .get_updates_request(request)
          )

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions