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:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user