Der einfachste und intuitivste Weg für Unternehmen und Entwickler, mit dem Aufbau auf der Whatsapp Cloud API zu beginnen.
Senden Sie eine frei formatierte Textnachricht an einen Empfänger
Senden Sie eine Geolokalisierungsnachricht an einen Empfänger
Senden Sie ein Dokument an einen Empfänger
Senden Sie ein Bild an einen Empfänger
Senden Sie ein Video an einen Empfänger
Senden Sie eine Audiodatei an einen Empfänger
Senden Sie eine Liste mit Schaltflächen an den Empfänger (maximal sind 3 Schaltflächen zulässig).
Senden Sie eine Liste mit Optionsfeldern an einen Empfänger (maximal sind 10 Optionsfelder zulässig).
Senden Sie einen Kontakt an einen Empfänger
Generieren Sie einen QR-Code, der von einem Empfänger gescannt werden kann
Markieren Sie eine Nachricht als gelesen
Analysieren Sie eingehende Nachrichten
Was ist die WhatsApp Cloud API? Sehen Sie sich dieses 60-Sekunden-Video während des Starts der Whatsapp Cloud API an.
Was ist dieses Paket? Dieses Paket ist ein inoffizieller und Open-Source -NodeJS-Wrapper rund um die offizielle WhatsApp Cloud API.
Warum ist dieses Paket nützlich? Weil Sie damit die WhatsApp Cloud API nutzen können, ohne viel Code schreiben zu müssen.
Kann ich dieses Paket in meinem Projekt verwenden? Ja, Sie können es verwenden, wie Sie möchten.
Kann ich zu diesem Paket beitragen? Ja, Sie können zu diesem Paket beitragen, indem Sie eine Pull-Anfrage erstellen.
So installieren Sie dieses Paket in Ihrem Projekt:
Verwendung von NPM:
npm installiere whatsappcloudapi_wrapper
Verwendung von Garn:
Garn hinzufügen whatsappcloudapi_wrapper
Importieren Sie zunächst das Paket wie folgt:
const WhatsappCloudAPI = require('whatsappcloudapi_wrapper');
Anschließend initialisieren Sie die Klasse wie folgt:
const Whatsapp = new WhatsappCloudAPI({accessToken: 'Ihr Zugriffstoken hier',senderPhoneNumberId: 'Ihre Absender-Telefonnummer-ID hier',WABA_ID: 'Ihre Whatsapp-Geschäftskonto-ID hier',});
wait Whatsapp.sendText({message: 'Hello world',recipientPhone: 'Ihre Empfänger-Telefonnummer hier',});
> Quick Question: - How does a recipient phone number look like? > Quick Answer: - A recipient phone number is the international phone number of the recipient without the '+' prefix. - For example, where a Kenyan phone number is '+254712345678' we would send the message to a recipientPhone 254712345678. - For a phone number +15550253483 we would send the message to a recipientPhone 15550253483. - For an US phone number +1 555-555-5555 we would send the message to a recipientPhone 5555555555. Makes sense?
Warten Sie auf Whatsapp.sendLocation({recipientPhone: 'Ihre Telefonnummer des Empfängers hier',Latitude: 'Ihr Breitengrad hier',Längengrad: 'Ihr Längengrad hier',Name: 'Ihr Standortname hier',Adresse: 'Ihr Standort, Straße/Adresse hier ',});
// Ein Dokument senden, das auf einer öffentlichen URL gehostet wirdawait Whatsapp.sendDocument({recipientPhone: 'Ihre Empfänger-Telefonnummer hier',caption: 'Invoice #123.',url: 'http://pdfkit.org/demo/out .pdf',});//ODER// Senden Sie ein Dokument, das sich in Ihrem lokalen Dateisystem befindet (die Datei wird zuerst auf den WhatsApp-Server hochgeladen, bevor sie gesendet wird).await Whatsapp.sendDocument({recipientPhone: 'Ihre Empfänger-Telefonnummer hier',file_path: './output.pdf',caption: 'Rechnung #123',});
// Ein Bild senden, das auf einer öffentlichen URL gehostet wirdawait Whatsapp.sendImage({recipientPhone: 'Ihre Empfänger-Telefonnummer hier',caption: 'Test',file_path: 'https://example.com/image.png',} );// ODER// Senden Sie ein Bild, das sich in Ihrem lokalen Dateisystem befindet (die Datei wird zuerst auf den WhatsApp-Server hochgeladen, bevor sie gesendet wird).await Whatsapp.sendImage({recipientPhone: 'Ihre Empfängertelefonnummer hier',caption: 'Test',file_path: './XEIDF3D5FTBDF1.png',});
// Ein Video senden, das auf einer öffentlichen URL gehostet wirdawait Whatsapp.sendVideo({recipientPhone: 'Ihre Empfänger-Telefonnummer hier',caption: 'Test',url: 'https://test-videos.co.uk/vids/ bigbuckbunny/mp4/h264/720/Big_Buck_Bunny_720_10s_1MB.mp4',});// ODER// Senden Sie ein Video, das in Ihrem ist lokales Dateisystem (Datei wird zuerst auf den WhatsApp-Server hochgeladen, bevor sie gesendet wird).await Whatsapp.sendVideo({recipientPhone: 'Ihre Empfänger-Telefonnummer hier',caption: 'Test',file_path: './last.mp4', });
// Senden Sie ein Audio, das auf einer öffentlichen URL gehostet wirdawait Whatsapp.sendAudio({recipientPhone: 'Ihre Empfänger-Telefonnummer hier',url: 'https://example.com/audio.mp3',});// ODER/ / Senden Sie eine Audiodatei, die sich in Ihrem lokalen Dateisystem befindet (die Datei wird zuerst auf den WhatsApp-Server hochgeladen, bevor sie gesendet wird).await Whatsapp.sendAudio({recipientPhone: 'Ihre Empfängertelefonnummer hier',caption: 'Test',file_path: './last.mp3',});
wait Whatsapp.sendSimpleButtons({recipientPhone: 'Hier ist Ihre Empfänger-Telefonnummer',message: `Wie kann ich Ihnen heute helfen`,listOfButtons: [{title: 'Einige Produkte anzeigen',id: 'see_categories',},{title: 'Meine Rechnung senden',id: 'print_invoice',},{title: 'Talk to a human',id: 'talk_to_human',},],});
waiting Whatsapp.sendRadioButtons({recipientPhone: 'Ihre Empfänger-Telefonnummer hier',headerText: 'Black Friday Top 10 Produkte',bodyText:'Daggie hat einige tolle Produkte für Sie auf der Grundlage Ihrer bisherigen Einkaufshistorie zusammengestellt.nBitte wählen Sie eines davon aus Produkte unten.',footerText: 'Genehmigt von Daggie Blanqx',listOfSections: [{title: 'Top 3 Fashion',rows: [{title: „Schwarzes LVX-T-Shirt“, Beschreibung: „KES 2999,00 nLVX ist ein warmes Baumwoll-T-Shirt“, ID: „SKU12_black_lvx_tshirt“,}, {Titel: „Lila Kapuzenpullover“, Beschreibung: „KES 1999,00 n Lila Kapuzenpullover mit Logrocket-Logo ',id: 'SKU13_purple_hoodie',},{title: 'Air Jordan 1',description:'KES 10999.00nWir bewegen uns, wo andere nicht hinkommen. Willst du fliegen?',id: 'SKU14_air_jordan_1',},],},{title: 'Top 3 Gadgets',rows: [{title: 'Apple Watch ',description:'KES 75999.00nDie Zeit ist endlich, genieße jede Sekunde davon',id: 'SKU15_apple_watch',},{title: 'Surface Pro',description: `KES 59999.00nSurfen Sie nicht nur im Internet, surfen Sie in der Welt`,id: 'SKU16_surface_pro',},{title: 'Xiaomi Beats Speaker',description : „KES 45699nEs liegt daran, wie Ihr Herz schlägt, wie Xiaomi schlägt.“,id: 'SKU17_xiaomi_beats_speaker',},],},{title: 'Top 3 Kitchen',rows: [{title: 'Tragbarer Handmixer',description: `KES7899nVerführen Sie Ihre süßen Freunde, indem Sie Ihr Lieblingsessen gleichmäßig mixen.`,id: 'SKU18_portable_hand_mixer ',},{title: 'Antihaft-Waffeleisen',description: „KES7899nTolle Waffeln werden aus den besten Zutaten hergestellt.“,id: „SKU19_non_stick_waffle_maker“,},{title: „6er-Set Kochlöffel“,Beschreibung: „KES7899nHalten Sie Ihr Glück in Ordnung.“,id: „SKU20_6_set_cooking_spoons“,},] ,},{title: '1 zufällige Auswahl',rows: [{title: „Nivea Icy Soap“, Beschreibung: „KES899nBleiben Sie hydratisiert und erfrischt. Pflegen Sie Ihre Haut.`,id: 'SKU21_nivea_icy_soap',},],},],});
Warten Sie auf Whatsapp.sendContact({recipientPhone: ReceiverPhone,contact_profile: {addresses: [{street: '1 Hacker Way',city: 'Menlo Park',state: 'CA',zip: '94025',country: 'United States' ,country_code: 'us',type: 'HOME',},{street: '200 Jefferson Dr',city: 'Menlo Park',state: 'CA',zip: '94025',country: 'United States',country_code: 'us',type: 'WORK',},],birthday: '2002-02-14',emails: [{email: ' [email protected]',type: 'WORK',},{email: '[email protected]',type: 'HOME',},],name: {formatted_name: 'Daggie Blanqx',Vorname: 'Daggie',Nachname: 'Blanqx',Mittelname: 'M.',Suffix: 'Sr',Präfix: 'Sw Engr',},org: {Firma: 'WhatsApp',Abteilung: 'Design',Titel: 'Manager',},Telefone: [{Telefon: '+1 (940) 555-1234',Typ: 'HOME',wa_id: '16505551234', // optional},{phone: '+1 (650) 555-1234',type: 'WORK', // optionalwa_id: '16505551234', // optional},], URLs: [{url: 'https://www.facebook.com',type: 'WORK',},{url: 'https://www.whatsapp.com',type: 'HOME',},],},});
let result = waiting Whatsapp.createQRCodeMessage({message: `Ihre QR-Code-Nachricht hier. Ich bin eine in einem QR-Code versteckte Nachricht.`,imageType: 'png' || 'svg',});let urlOfImage = result.data .qr_image_url;
Sehen Sie sich das Bild unten an, um zu erfahren, wie Sie den QR-Code anzeigen:
wait Whatsapp.markMessageAsRead({message_id: 'the id of your message here',});// Ein nicht wiederholbarer Fehler wird ausgegeben, wenn die Nachricht nicht gefunden wird oder eine Nachricht bereits gelesen wurde.
Die Schaltflächen-ID muss zwischen 1 und 256 Zeichen lang sein.
Der Button-Titel muss zwischen 1 und 20 Zeichen lang sein.
Die Liste der Artikel ist auf 10 begrenzt.
Die Beschreibung der Elemente in der Liste muss zwischen 1 und 72 Zeichen lang sein.
Der Titel der Liste muss zwischen 1 und 24 Zeichen lang sein.
Die ID der Liste muss zwischen 1 und 200 Zeichen lang sein.
// req.body ist der Hauptteil der Anfrage, die den Webhook anpingt. Ungültige Payloads lösen einen Fehler aus und Sie sollten mit dem HTTP-Status 5** oder 4** und nicht mit 200 antworten.// Denken Sie daran, am Ende einer erfolgreichen eingehenden Anfrage mit dem HTTP-Status 200 zu antworten.let data = Whatsapp.parseMessage( req.body);/*data.isMessage ist wahr, wenn es sich um eine Nachricht von einem Kunden handelt, andernfalls ist es falsch.data.isNotificationMessage ist wahr, wenn es sich um eine Benachrichtigung von einem handelt Meta (z. B. eine Nachrichtenübermittlungs-/Lesestatusbenachrichtigung), andernfalls ist sie falsch. Die Daten geben einen Fehler aus, wenn der Text der Webhook-Anfrage ungültig ist oder nicht von Meta stammt.*/
if (data?.isMessage) {let incomingMessage = data.message;let ReceiverPhone = incomingMessage.from.phone; // Extrahieren Sie die Telefonnummer des Kunden. EmpfängerName = incomingMessage.from.name; // Den Namen des Customerlets extrahieren typeOfMsg = incomingMessage.type; // Den Typ des Messagelets extrahieren message_id = incomingMessage.message_id; // die Nachricht extrahieren idif (typeOfMsg === 'simple_button_message') {let button_id = incomingMessage.button_reply.id;if (button_id === 'book_appointment') {// Der Kunde hat auf eine einfache Schaltfläche geklickt, deren ID 'book_appointment' ist '.// Sie können mit einer ausgehenden Aktion darauf antworten, z. B. einer Textnachrichtawait Whatsapp.sendText({message: „Hallo Kunde, Sie haben auf die Schaltfläche „Termin buchen“ geklickt“,recipientPhone: „Hier ist Ihre Empfänger-Telefonnummer“,});};};
if (data?.isMessage) {let incomingMessage = data.message;let ReceiverPhone = incomingMessage.from.phone; // Extrahieren Sie die Telefonnummer des Kunden. EmpfängerName = incomingMessage.from.name; // Den Namen des Customerlets extrahieren typeOfMsg = incomingMessage.type; // Den Typ des Messagelets extrahieren message_id = incomingMessage.message_id; // Extrahieren Sie die Nachrichten-IDif (typeOfMsg === 'radio_button_message') {let SelectionId = incomingMessage.list_reply.id;if (selectionId === 'morning_session') {// Der Kunde hat das Optionsfeld ausgewählt, dessen ID „morning_session“ lautet. .// Sie können darauf mit einer ausgehenden Aktion antworten, z. B. einer Textnachrichtawait Whatsapp.sendText({message: `You have selected the 'morning_session' option`,recipientPhone: 'Ihre Empfängertelefonnummer hier'});};};
Wenn Sie Fragen haben, wenden Sie sich an die GitHub-Diskussionsforen
Wenn Sie Vorschläge oder Feedback haben, öffnen Sie bitte ein Problem oder erstellen Sie eine Pull-Anfrage.
Dieses Paket befindet sich in der aktiven Entwicklung.
Das bedeutet, dass regelmäßig neue Funktionen hinzugefügt werden.
Falls Ihre Lieblingsfunktion fehlt, können Sie jederzeit eine Version zurücksetzen oder eine Pull-Anfrage erstellen, die überprüft und in die nächste Version integriert wird.
Vielen Dank für Ihren Beitrag.
Viel Spaß beim Codieren!
Folgen Sie mir auf Twitter: @daggieblanqx
Ich bin auch auf LinkedIn, wo Sie mich mit den tollen Projekten markieren können, die Sie mit diesem Paket erstellt haben: @daggieblanqx
Blogbeiträge: Logrocket/@Daggieblanqx