Hai, saya Rohan, pengasas Spur, API WhatsApp & Komen Instagram/Perisian Automasi DM.
Beberapa minggu yang lalu, saya menulis blog di mana anda harus membina integrasi WhatsApp atau tidak. Itu adalah artikel peringkat tinggi mengenai topik itu, hari ini kita akan belajar tentang cara anda bermula dengan API WhatsApp?
Hari ini, kami akan membuat bot ringkas yang berjalan pada pelayan Node, mengambil webhooks daripada WhatsApp Cloud API, membaca mesej & menggunakan
OpenAI GPT 4o untuk menghantar respons.
Mahu melompat terus ke kod? Pautan ada di bahagian bawah.
Ini agak mudah, dan Meta sudah mempunyai panduan tentang perkara ini. Melangkah ke hadapan, saya akan menganggap
Untuk token, anda boleh menggunakan token sementara, kami akan meliputi penggunaan kepada pengeluaran dalam tutorial lain suatu hari nanti.
jika anda tidak mempunyai persediaan pnpm, ini adalah cara paling mudah
corepack enable corepack prepare pnpm@latest --activate
sekarang kita mulakan
mkdir whatsapp-ai-bot # intialize npm project pnpm init # make the server file touch index.js # env file touch .env
Pasang kebergantungan yang diperlukan sekarang:
pnpm install express dotenv openai
Jangan sekali-kali melakukan kunci API. Untuk menyimpan maklumat sensitif seperti kunci API daripada pangkalan kod, kami akan menggunakan pembolehubah persekitaran. Cipta fail .env dalam direktori akar projek anda dan tambah baris berikut:
OPENAI_API_KEY=<your-openai-api-key>
Sekarang gunakan fail index.js yang dibuat dan tambah kod berikut
import express from 'express'; import { config } from 'dotenv'; import OpenAI from 'openai'; // Load environment variables config(); // Create a web server const app = express(); const port = process.env.PORT || 3034; app.listen(port, () => { console.log(`Server running on port ${port}`); }); // Add middleware to parse JSON bodies app.use(express.json()); // Initialize OpenAI API const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY, }); app.get('/webhooks', (req, res) => { if ( req.query['hub.mode'] === 'subscribe' && req.query['hub.verify_token'] === '1234' ) { res.send(req.query['hub.challenge']); } else { res.sendStatus(400); } }); app.post('/webhooks', async (req, res) => { const body = req.body.entry[0].changes[0]; if (body.field !== 'messages') { // not from the messages webhook so dont process return res.sendStatus(200); } if (!body.value.messages) { return res.sendStatus(200); } const text = body.value.messages .map((message) => message.text.body) .join('\n\n'); console.log(text); const completion = await openai.chat.completions.create({ model: 'gpt-4o-mini', messages: [{ role: 'user', content: text }], }); // Extract the response from the OpenAI completion const aiResponse = completion.choices[0].message.content; // Extract the phone number from the incoming message const phoneNumber = body.value.messages[0].from; // Prepare the message payload const messagePayload = { messaging_product: 'whatsapp', to: phoneNumber, type: 'text', text: { body: aiResponse, }, }; // Send the response back to WhatsApp try { const response = await fetch( `https://graph.facebook.com/v20.0/${process.env.PHONE_NUMBER_ID}/messages`, { method: 'POST', headers: { Authorization: `Bearer ${process.env.SYSTEM_TOKEN}`, 'Content-Type': 'application/json', }, body: JSON.stringify(messagePayload), }, ); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } console.log('Message sent successfully'); } catch (error) { console.error('Failed to send message:', error); } res.sendStatus(200); });
dan juga mengubah suai package.json kepada
{ "name": "whatsapp-ai-bot", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node server.js", "dev": "nodemon server.js" }, "keywords": [], "author": "", "license": "ISC", "type": "module", "packageManager": "pnpm@9.6.0", "dependencies": { "dotenv": "^16.4.5", "express": "^4.19.2", "openai": "^4.53.2" }, "devDependencies": { "nodemon": "^3.1.4" } }
Contoh ini hanyalah puncak gunung ais, terdapat begitu banyak perkara yang boleh anda lakukan untuk memperbaikinya
Jadi itu sahaja. Jika anda juga berminat dengan artikel yang saya tulis tentang integrasi WhatsApp, anda boleh menyemaknya di sini.
Saya juga telah berkongsi kod contoh kerja pada organisasi GitHub Spur.
Atas ialah kandungan terperinci WhatsApp AI Chatbot: Mari kita bina satu dengan API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!