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