fix: WhatsApp incomingWebhook beim Start automatisch aktivieren

Green-API-Instanz hatte incomingWebhook=no → keine Nachrichten in Queue.
_ensure_incoming_enabled() setzt incomingWebhook+outgoingWebhook=yes beim Start.
This commit is contained in:
2026-03-13 14:49:09 +01:00
parent 18ad0735ef
commit 0f73341c8b

View File

@@ -70,6 +70,7 @@ class WhatsAppChannel(BaseChannel):
logger.info("WhatsApp disabled (no credentials configured)") logger.info("WhatsApp disabled (no credentials configured)")
return return
self._session = aiohttp.ClientSession() self._session = aiohttp.ClientSession()
await self._ensure_incoming_enabled()
logger.info("WhatsApp channel started") logger.info("WhatsApp channel started")
async def stop(self) -> None: async def stop(self) -> None:
@@ -128,6 +129,24 @@ class WhatsAppChannel(BaseChannel):
} }
await self._inbound_callback(payload) 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: def _get_session(self) -> aiohttp.ClientSession:
if not self._session or self._session.closed: if not self._session or self._session.closed:
self._session = aiohttp.ClientSession() self._session = aiohttp.ClientSession()