From 0f73341c8b3ee86e1e4eb25d16884614e1aa9d13 Mon Sep 17 00:00:00 2001 From: "itdrui.de" Date: Fri, 13 Mar 2026 14:49:09 +0100 Subject: [PATCH] fix: WhatsApp incomingWebhook beim Start automatisch aktivieren MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Green-API-Instanz hatte incomingWebhook=no → keine Nachrichten in Queue. _ensure_incoming_enabled() setzt incomingWebhook+outgoingWebhook=yes beim Start. --- channels/whatsapp_channel.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/channels/whatsapp_channel.py b/channels/whatsapp_channel.py index aa582f6..999ed71 100644 --- a/channels/whatsapp_channel.py +++ b/channels/whatsapp_channel.py @@ -70,6 +70,7 @@ class WhatsAppChannel(BaseChannel): logger.info("WhatsApp disabled (no credentials configured)") return self._session = aiohttp.ClientSession() + await self._ensure_incoming_enabled() logger.info("WhatsApp channel started") async def stop(self) -> None: @@ -128,6 +129,24 @@ class WhatsAppChannel(BaseChannel): } await self._inbound_callback(payload) + + async def _ensure_incoming_enabled(self) -> None: + """Stellt sicher dass incomingWebhook in der Green-API-Instanz aktiviert ist.""" + url = f"{self._base_url}/setSettings/{self._token}" + try: + async with self._get_session().post( + url, + json={"incomingWebhook": "yes", "outgoingWebhook": "yes"}, + timeout=aiohttp.ClientTimeout(total=10), + ) as resp: + data = await resp.json() + if data.get("saveSettings"): + logger.info("WhatsApp: incomingWebhook aktiviert") + else: + logger.warning("WhatsApp: setSettings Antwort: %s", data) + except Exception as exc: + logger.warning("WhatsApp: incomingWebhook konnte nicht gesetzt werden: %s", exc) + def _get_session(self) -> aiohttp.ClientSession: if not self._session or self._session.closed: self._session = aiohttp.ClientSession()