← Back to Plugins
Channels

Easywhatsapp

AlfonsoVertu By AlfonsoVertu 👁 50 views ▲ 0 votes

Plugin OpenClaw: legge e manda messaggi WhatsApp con EasyWhatsAppBOT

GitHub

Install

npm install
```

Configuration Example

{
  "openclaw-easywhatsapp": {
    "config": {
      "accounts": [
        {
          "alias": "palestra",
          "url": "http://localhost:3001",
          "apikey": "<la chiave del server>",
          "instance": "a1b2c3d4e5f60718"
        }
      ]
    }
  }
}

README

# openclaw-easywhatsapp

Plugin per [OpenClaw](https://github.com/openclaw) che gli permette di **leggere
e mandare messaggi WhatsApp** attraverso un server
[EasyWhatsAppBOT](https://github.com/AlfonsoVertu/EasyWhatsAppBOT).

Si configura un account una volta — indirizzo del server, chiave, istanza — e
compaiono gli strumenti per quell'account: vedere le conversazioni, leggere
cosa si sono detti, rispondere.

## Attenzione, questi strumenti mandano messaggi veri

`manda_testo`, `manda_media` e `manda_nota_vocale` scrivono **davvero** sul
telefono di una persona, e non si annullano. Le descrizioni degli strumenti lo
dicono in modo esplicito perché il modello lo sappia prima di chiamarli, ma
vale la pena saperlo anche prima di configurarlo.

Se serve solo far leggere le conversazioni, non c'è un interruttore: si
configura l'account e si accetta che gli strumenti di invio ci siano.

## Gli strumenti

Con un account di alias `palestra` si ottengono nove strumenti:

| Strumento | Cosa fa |
|---|---|
| `wa_palestra_stato` | Se l'account è collegato e a quale numero |
| `wa_palestra_elenca_chat` | Le conversazioni, dalla più recente |
| `wa_palestra_leggi_conversazione` | Gli ultimi messaggi con un numero |
| `wa_palestra_manda_testo` | **Manda** un messaggio |
| `wa_palestra_manda_media` | **Manda** immagine, video o documento |
| `wa_palestra_manda_nota_vocale` | **Manda** una nota vocale |
| `wa_palestra_collega` | Il codice QR per collegare un telefono |
| `wa_palestra_elenca_istanze` | Tutti gli account presenti sul server |
| `wa_palestra_leggi_webhook` | Dove finiscono i messaggi in arrivo |

L'alias sta nel nome degli strumenti apposta: con più account collegati non
c'è modo di mandare un messaggio dal numero sbagliato, perché si sceglie il
numero scegliendo lo strumento.

## Installazione

```bash
git clone <questo-repo> ~/.openclaw/skills/openclaw-easywhatsapp
cd ~/.openclaw/skills/openclaw-easywhatsapp
npm install
```

## Configurazione

In `~/.openclaw/openclaw.json`, sotto `plugins.entries`:

```json
{
  "openclaw-easywhatsapp": {
    "config": {
      "accounts": [
        {
          "alias": "palestra",
          "url": "http://localhost:3001",
          "apikey": "<la chiave del server>",
          "instance": "a1b2c3d4e5f60718"
        }
      ]
    }
  }
}
```

- **`alias`** — finisce nel nome degli strumenti: solo lettere, numeri e
  trattino basso. Due account non possono avere lo stesso alias, altrimenti
  gli strumenti si sovrascriverebbero fra loro senza che nessuno se ne accorga.
- **`apikey`** — si crea dal pannello di EasyWhatsAppBOT, sezione Chiavi API.
- **`instance`** — l'**identificativo** dell'account, non la sua etichetta.
  Le etichette non sono uniche: due account possono chiamarsi allo stesso modo,
  e allora non si capisce più di chi sia il messaggio. L'identificativo si
  legge dal pannello o con `wa_<alias>_elenca_istanze`.

La configurazione viene controllata all'avvio: se manca un campo o un alias è
ripetuto, il plugin lo dice subito invece di registrare strumenti che
fallirebbero al primo uso.

## Il numero, in qualunque forma

Gli strumenti accettano il numero con il prefisso internazionale e senza `+`
(`393337772464`), ma anche l'indirizzo completo che torna dall'elenco chat
(`393337772464@s.whatsapp.net`). Chi legge una conversazione e poi vuole
rispondere non deve ripulire niente a mano.

## La chiave non va nel repository

`apikey` dà accesso in scrittura a un numero WhatsApp vero: sta nella
configurazione di OpenClaw, mai nel codice e mai in un file di prova. Il
`.gitignore` esclude `*.local.*` e i file di prova apposta.

## Sviluppo

```bash
npm install
npx tsc          # compila in dist/
```

L'ingresso è `src/index.ts`. Gli strumenti stanno in `src/tools.ts`, il dialogo
col server in `src/client.ts`, i controlli sulla configurazione in
`src/config.ts`.

Le rotte usate sono quelle compatibili con Evolution API, che
EasyWhatsAppBOT espone per poterla sostituire senza toccare chi la usa già.

## Licenza

MIT — vedi [LICENSE](LICENSE).
channels

Comments

Sign in to leave a comment

Loading comments...