企業和開發人員開始建立Whatsapp Cloud API 的最簡單、最直觀的方式。
向收件人發送自由格式的短信
向收件人發送地理位置訊息
將文件傳送給收件人
將影像傳送給收件人
將影片傳送給收件人
向收件人發送音訊
向收件者傳送按鈕清單(允許的最大按鈕數量為 3)
向收件者傳送單選按鈕清單(允許的單選按鈕最大數量為 10)
將聯絡人傳送給收件人
產生可由收件者掃描的二維碼
將訊息標記為已讀
解析傳入訊息
什麼是 WhatsApp 雲端 API?在 Whatsapp Cloud API 發布期間觀看這段 60 秒的影片。
這個包是什麼?該軟體包是圍繞官方 WhatsApp Cloud API 的非官方開源NodeJS 包裝器。
為什麼這個包有用?因為它允許您使用 WhatsApp Cloud API,而無需編寫大量程式碼。
我可以在我的專案中使用這個套件嗎?是的,您可以隨心所欲地使用它。
我可以為這個包做出貢獻嗎?是的,您可以透過建立拉取請求來為此套件做出貢獻。
要在您的專案中安裝此套件:
使用 NPM:
npm 安裝whatsappcloudapi_wrapper
使用紗線:
紗線添加whatsappcloudapi_wrapper
首先導入包如下:
const WhatsappCloudAPI = require('whatsappcloudapi_wrapper');
然後按如下方式初始化該類別:
const Whatsapp = new WhatsappCloudAPI({accessToken: '此處為您的訪問令牌',senderPhoneNumberId: '此處為您的發件人電話號碼id',WABA_ID: '此處為您的Whatsapp 企業帳戶id', });
wait Whatsapp.sendText({message: 'Hello world',recipientPhone: '這裡是您的收件者電話號碼',});
> 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?
wait Whatsapp.sendLocation({recipientPhone: '這裡是您的收件人電話號碼',latitude: '這裡是您的緯度',longitude: '這裡是您的經度',name: '這裡是您的位置名稱' ,address: '這裡是您的位置街道/地址',});
// 傳送託管在公共URL 上的文件等待Whatsapp.sendDocument({recipientPhone: '這裡是您的收件者電話號碼',caption: 'Invoice #123.',url: 'http://pdfkit.org /demo/out .pdf',});//或// 傳送本機檔案系統中的文件(檔案在傳送前將先上傳至WhatsApp 伺服器).await Whatsapp.sendDocument({recipientPhone: '您的收件者電話號碼這裡',file_path: './output.pdf',caption: '發票 #123',});
// 傳送託管在公共URL 上的圖片等待Whatsapp.sendImage({recipientPhone: '您的收件人電話號碼在這裡',caption: 'Test',file_path: 'https://example.com/image.png ',} );// 或// 發送本地文件系統中的圖像(文件在發送之前將首先上傳到WhatsApp 伺服器).await Whatsapp.sendImage({recipientPhone: '您的收件人電話號碼在這裡', caption: '測試',file_path: './XEIDF3D5FTBDF1.png',});
// 發送託管在公共URL 上的影片等待Whatsapp.sendVideo({recipientPhone: '您的收件人電話號碼在這裡',caption: '測試',url: 'https://test-videos.co.uk /vids/ bigbuckbunny/mp4/h264/720/Big_Buck_Bunny_720_10s_1MB.mp4',});// 或// 發送本機檔案系統中的影片(檔案會在傳送之前先上傳至 WhatsApp 伺服器).await Whats{app. recipientPhone: '這裡是您的收件者電話號碼',caption: '測試',file_path: './last.mp4',});
// 發送託管在公共URL 上的音訊等待Whatsapp.sendAudio({recipientPhone: '您的收件人電話號碼在這裡',url: 'https://example.com/audio.mp3',});/ / OR/ / 發送本地檔案系統中的音訊(檔案在發送之前將首先上傳到WhatsApp 伺服器)。 file_path: './last.mp3',});
wait Whatsapp.sendSimpleButtons({recipientPhone: '這裡是您的收件人電話號碼',message: `今天我能為您提供什麼幫助`,listOfButtons: [{title: '查看一些產品',id: 'see_categories' ,},{title: '寄我的發票',id: 'print_invoice',},{title: '與人交談',id: 'talk_to_ human',},],});
wait Whatsapp.sendRadioButtons({recipientPhone: '這裡是您的收件人電話號碼',headerText: '黑色星期五十大產品',bodyText:'Daggie 根據您之前的購物歷史為您準備了一些很棒的產品。 'KES 2999.00nLVX 是一件溫暖的棉質單品t 卹',id: 'SKU12_black_lvx_tshirt',},{title: '紫色連帽衫',description:'KES 1999.00n帶有Logrocket 標誌的紫色連帽衫',description:'KES 1999.00n帶有Logrocket 標誌的紫色連帽衫',id: 'SKU13_purple_hoodie',},{title: 'Air Jordan 1' ,description:'KES 10999.00n我們搬到別人不去的地方。 ,},{title: '前3 個小工具',rows: [{title: 'Apple Watch', description:'KES 75999.00n時間有限,享受每一秒',id: 'SKU15_apple_watch',},{title : 'Surface Pro',description: `KES 59999.00n不要只是上網衝浪,而是暢遊世界`, id: 'SKU16_surface_pro',},{title: '小米Beats 音箱',description: `KES 45699n它就是你的心跳心跳。 ,小米的節拍方式。喜歡的食物來誘惑您的甜蕾。的。 random pick',rows: [{title: 'Nivea Icy Soap',description: `KES899n保持水分和清爽。滋養您的肌膚。
等待Whatsapp.sendContact({recipientPhone:recipientPhone,contact_profile:{地址:[{街道:'1 Hacker Way',城市:'門洛帕克',州:'CA',郵政編碼:'94025',國家:'美國' ,country_code: 'us',type: 'HOME',},{街道: '200 Jefferson Dr',城市: '門洛帕克',州: 'CA',郵編: '94025',國家: '美國' ,國家代碼:'我們',類型:'工作',},],生日:'2002-02-14',電子郵件:[{電子郵件:'[email protected]',類型:'工作',},{電子郵件: '[email protected]',類型: 'HOME',},],名稱: {formatted_name: 'Daggie Blanqx',first_name: 'Daggie',last_name: 'Blanqx',middle_name: 'M.',後綴: 'Sr',前綴:'Sw Engr',},組織:{公司:'WhatsApp',部門:'設計',標題:'經理',},電話:[{電話:' +1 (940) 555- 1234',type: 'HOME',wa_id: '16505551234', // 可選},{phone: '+1 (650) 555-1234',type: 'WORK', //可選wa_id: '16505551234', //可選},],urls: [{url: 'https://www.facebook.com',type: 'WORK',},{url: 'https:// www.whatsapp.com',type: 'HOME ',},],},});
let result = wait Whatsapp.createQRCodeMessage({message: `這裡是您的二維碼訊息。我是隱藏在二維碼中的訊息`,imageType: 'png' || 'svg',});let urlOfImage = result.data .qr_image_url;
如何顯示二維碼請參考下圖:
wait Whatsapp.markMessageAsRead({message_id: 'the id of your message here',});// 如果未找到訊息或訊息已被讀取,則會拋出不可重試的錯誤。
按鈕 ID 的長度必須介於 1 到 256 個字元之間。
按鈕標題的長度必須介於 1 到 20 個字元之間。
項目清單限制為 10 個。
清單中項目的描述長度必須在 1 到 72 個字元之間。
清單標題的長度必須介於 1 到 24 個字元之間。
列表 ID 的長度必須介於 1 到 200 個字元之間。
// req.body 是 ping webhook 的請求文字。無效的有效負載將引發錯誤,您應該以HTTP 狀態5** 或4** 回應,而不是200。 .parseMessage( req.body);/*如果是來自客戶的訊息,data.isMessage 將為 true,否則為 false。通知),否則將為false。
if (data?.isMessage) {讓傳入訊息 = data.message;讓收件者電話 =傳入訊息.from.phone; // 擷取客戶的電話號碼recipientName =comingMessage.from.name; // 擷取 customerlet 的名稱 typeOfMsg =comingMessage.type; // 提取messagelet的型別 message_id =傳入Message.message_id; // 擷取訊息 idif (typeOfMsg === 'simple_button_message') {let button_id =comingMessage.button_reply.id;if (button_id === 'book_appointment') {// 客戶點擊了一個 id 為 'book_appointment 的簡單按鈕'. // 您可以透過出站操作來回覆他們,例如簡訊await Whatsapp.sendText({message: `您好客戶,您點擊了'預約'按鈕`,recipientPhone: '您的收件人電話號碼在這裡', });};};
if (data?.isMessage) {讓傳入訊息 = data.message;讓收件者電話 =傳入訊息.from.phone; // 擷取客戶的電話號碼recipientName =comingMessage.from.name; // 擷取 customerlet 的名稱 typeOfMsg =comingMessage.type; // 提取messagelet的型別 message_id =傳入Message.message_id; // 擷取訊息 idif (typeOfMsg === 'radio_button_message') {let SelectionId =comingMessage.list_reply.id;if (selectionId === 'morning_session') {// 客戶選擇了 id 為 'morning_session' 的單選按鈕. // 您可以透過出站操作來回覆它們,例如簡訊await Whatsapp.sendText({message: `您已選擇了'morning_session' 選項`,recipientPhone: '您的收件者電話號碼'});};} ;
如果您有任何疑問,請透過 GitHub 討論論壇提問
如果您有任何建議或回饋,請提出問題或建立拉取請求。
該軟體包正在積極開發中。
這意味著定期添加新功能。
如果缺少您最喜歡的功能,您可以隨時向後推送版本或建立拉取請求,該請求將被審查並合併到下一個版本中。
感謝您的貢獻。
快樂編碼!
在 Twitter 上關注我:@daggieblanqx
我也在 LinkedIn,您可以在其中將我標記為您使用此包構建的出色項目:@daggieblanqx
部落格文章:Logrocket/@Daggieblanqx