Skip to content

Commit a99e23b

Browse files
committed
docs: add example of express
1 parent 48ba826 commit a99e23b

File tree

19 files changed

+240
-958
lines changed

19 files changed

+240
-958
lines changed

examples/express-example/README.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Express WhatsApp Bot Example
2+
3+
Express WhatsApp bot using Meta Cloud API with interactive menu.
4+
5+
## Setup
6+
7+
1. **Install dependencies:**
8+
```bash
9+
pnpm install
10+
```
11+
12+
2. **Configure environment:**
13+
```bash
14+
cp env.example .env
15+
```
16+
17+
Add your credentials:
18+
```env
19+
CLOUD_API_ACCESS_TOKEN=your_access_token
20+
WA_PHONE_NUMBER_ID=your_phone_number_id
21+
WEBHOOK_VERIFICATION_TOKEN=your_verification_token
22+
```
23+
24+
3. **Run development server:**
25+
```bash
26+
pnpm run dev
27+
```
28+
29+
4. **Expose with ngrok:**
30+
```bash
31+
ngrok http 3000
32+
```
33+
34+
5. **Configure webhook:**
35+
- URL: `https://your-ngrok-url.ngrok.io/webhook`
36+
- Token: `your_verification_token`
37+
38+
## Implementation
39+
40+
Simple Express server that responds to all text messages with an interactive menu:
41+
42+
```typescript
43+
bot.processor.onMessage(MessageTypesEnum.Text, async (whatsapp, message) => {
44+
await whatsapp.messages.markAsRead({ messageId: message.id });
45+
await whatsapp.messages.showTypingIndicator({ messageId: message.id });
46+
47+
const interactiveMessage = new InteractiveMessageBuilder()
48+
.setType(InteractiveTypesEnum.List)
49+
.setTextHeader('Our Menu')
50+
.setBody('Select items from our menu')
51+
.setListButtonText('View Menu')
52+
.addListSections([...])
53+
.build();
54+
55+
await whatsapp.messages.interactive({
56+
to: message.from,
57+
body: interactiveMessage,
58+
});
59+
});
60+
```
61+
62+
## Features
63+
64+
- Interactive menu list response to any text message
65+
- Read receipts and typing indicators
66+
- Builder pattern for message construction
67+
- Simple Express webhook setup

examples/express-example/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
"version": "1.0.0",
44
"private": true,
55
"type": "module",
6-
"description": "🤖 Simple WhatsApp Echo Bot using meta-cloud-api",
6+
"description": "Simple WhatsApp Bot using meta-cloud-api",
77
"main": "dist/server.js",
88
"scripts": {
99
"start": "node dist/server.js",
10-
"dev": "NODE_OPTIONS='--no-warnings' nodemon --watch \"src/**/*.ts\" --exec \"ts-node\" src/server.ts",
10+
"dev": "NODE_OPTIONS='--no-warnings' nodemon --watch \"src/*.ts\" --exec \"ts-node\" src/server.ts",
1111
"build": "tsc"
1212
},
1313
"dependencies": {

examples/express-example/src/01-text-message.ts

Lines changed: 0 additions & 83 deletions
This file was deleted.

examples/express-example/src/02-template-message.ts

Lines changed: 0 additions & 169 deletions
This file was deleted.

0 commit comments

Comments
 (0)