Самый простой и интуитивно понятный способ для предприятий и разработчиков начать использовать Whatsapp Cloud API .
Отправьте получателю текстовое сообщение в свободном формате.
Отправить сообщение о географическом местоположении получателю
Отправка документа получателю
Отправьте изображение получателю
Отправьте видео получателю
Отправка аудио получателю
Отправьте список кнопок получателю (максимум разрешено 3 кнопки).
Отправьте список переключателей получателю (максимальное количество переключателей — 10).
Отправить контакт получателю
Создайте QR-код, который сможет отсканировать получатель.
Отметить сообщение как прочитанное
Разбирать входящие сообщения
Что такое WhatsApp Cloud API? Посмотрите это 60-секундное видео во время запуска Whatsapp Cloud API.
Что это за пакет? Этот пакет представляет собой неофициальную оболочку NodeJS с открытым исходным кодом для официального WhatsApp Cloud API.
Почему этот пакет полезен? Потому что он позволяет вам использовать WhatsApp Cloud API без необходимости писать много кода.
Могу ли я использовать этот пакет в своем проекте? Да, вы можете использовать его, как хотите.
Могу ли я внести свой вклад в этот пакет? Да, вы можете внести свой вклад в этот пакет, создав запрос на включение.
Чтобы установить этот пакет в свой проект:
Использование НПМ:
npm установить WhatsAppcloudapi_wrapper
Использование пряжи:
пряжа добавить WhatsAppcloudapi_wrapper
Сначала импортируйте пакет следующим образом:
const WhatsappCloudAPI = require('whatsappcloudapi_wrapper');
Затем инициализируйте класс следующим образом:
const Whatsapp = new WhatsappCloudAPI({accessToken: «Ваш токен доступа здесь», senderPhoneNumberId: «Идентификатор вашего номера телефона отправителя здесь», WABA_ID: «Идентификатор вашего бизнес-аккаунта Whatsapp здесь»,});
await 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?
await Whatsapp.sendLocation({recipientPhone: 'номер телефона вашего получателя здесь',latitude: 'ваша широта здесь',longitude: 'ваша долгота здесь',name: 'название вашего местоположения здесь',address: 'улица/адрес вашего местоположения здесь ',});
// Отправляем документ, размещенный на общедоступном URL-адресе. .pdf',});//ИЛИ// Отправьте документ, который находится в вашей локальной файловой системе (перед отправкой файл будет загружен на сервер WhatsApp).await Whatsapp.sendDocument({recipientPhone: 'здесь ваш номер телефона получателя',file_path: './output.pdf',caption: 'Счет №123',});
// Отправляем изображение, размещенное на общедоступном URL-адресе await Whatsapp.sendImage({recipientPhone: 'номер телефона получателя здесь',caption: 'Test',file_path: 'https://example.com/image.png',} );// ИЛИ// Отправьте изображение, которое находится в вашей локальной файловой системе (файл будет загружен на сервер WhatsApp перед отправкой).await Whatsapp.sendImage({recipientPhone: 'номер телефона получателя здесь',caption: 'Test',file_path: './XEIDF3D5FTBDF1.png',});
// Отправляем видео, размещенное на общедоступном URL-адресе. bigbuckbunny/mp4/h264/720/Big_Buck_Bunny_720_10s_1MB.mp4',});// ИЛИ// Отправить видео, которое находится в вашей локальной файловой системе (перед отправкой файл будет загружен на сервер WhatsApp).await Whatsapp.sendVideo({recipientPhone: 'здесь ваш номер телефона получателя',caption: 'Test',file_path: '. /last.mp4',});
// Отправляем аудио, размещенное на общедоступном URL-адресе await Whatsapp.sendAudio({recipientPhone: 'номер телефона вашего получателя здесь',url: 'https://example.com/audio.mp3',});// ИЛИ/ / Отправьте аудио, которое находится в вашей локальной файловой системе (перед отправкой файл будет загружен на сервер WhatsApp). await Whatsapp.sendAudio({recipientPhone: 'номер телефона вашего получателя здесь',caption: 'Test',file_path: './last.mp3',});
await Whatsapp.sendSimpleButtons({recipientPhone: 'номер телефона вашего получателя здесь',message: `Чем я могу вам помочь сегодня`,listOfButtons: [{title: 'Посмотреть некоторые продукты',id: 'see_categories',},{title: «Отправить мой счет»,id: «print_invoice»,},{title: «Поговорить с человеком»,id: 'talk_to_human',},],});
await Whatsapp.sendRadioButtons({recipientPhone: 'здесь ваш номер телефона получателя',headerText: '10 лучших товаров Черной пятницы',bodyText:'Дэгги подготовила для вас несколько отличных продуктов на основе вашей предыдущей истории покупок.nПожалуйста, выберите один из продукты ниже.',footerText: 'Одобрено Дагги Бланкс',listOfSections: [{title: 'Топ-3 моды',rows: [{title: 'Черная футболка LVX',description: 'KES 2999.00nLVX — теплая хлопковая футболка',id: 'SKU12_black_lvx_tshirt',},{title: 'Фиолетовая толстовка',description:'KES 1999.00nPurple толстовка с логотипом Logrocket',id: 'SKU13_purple_hoodie',},{title: 'Air Jordan 1',description:'KES 10999.00nМы переезжаем туда, куда другие не могут. Хочешь летать?',id: 'SKU14_air_jordan_1',},],},{title: 'Top 3 Гаджеты',строки: [{title: 'Apple Watch',description:'KES 75999.00nВремя ограничено, наслаждайтесь каждой секундой',id: 'SKU15_apple_watch',},{title: 'Surface Pro',description: `KES 59999.00nНе просто путешествуйте по Интернету, путешествуйте по миру`,id: 'SKU16_surface_pro ',},{title: «Xiaomi Beats Динамик»,description: `KES 45699nЭто то, как бьется ваше сердце, как бьется Xiaomi.`,id: 'SKU17_xiaomi_beats_speaker',},],},{title: 'Топ-3 кухни',rows: [{title: 'Портативный ручной миксер',description: ` KES7899nИскушайте своих сладкоежек, равномерно смешивая любимую еду.`,id: 'SKU18_portable_hand_mixer',},{title: 'Вафельница с антипригарным покрытием',description: `KES7899nОтличные вафли сделаны из лучших ингредиентов.`,id: 'SKU19_non_stick_waffle_maker',},{title: '6 наборов кухонных ложек' ,описание: `KES7899nДержи свое счастье правильно.`,id: 'SKU20_6_set_cooking_spoons',},],},{title: '1 случайный выбор',rows: [{title: 'Nivea Icy Soap',description: `KES899nОставайтесь увлажненными и свежими. Питайте свою кожу.`,id: 'SKU21_nivea_icy_soap',},],},],});
await Whatsapp.sendContact({recipientPhone: RecipientPhone,contact_profile: {адреса: [{улица: «1 Hacker Way», город: «Менло-Парк», штат: «Калифорния», почтовый индекс: «94025», страна: «Соединенные Штаты» ,country_code: 'us',type: 'HOME',},{улица: '200 Jefferson Dr',city: «Менло-Парк», штат: «Калифорния», почтовый индекс: «94025», страна: «США», код страны: «нас», тип: «РАБОТА»,},], день рождения: «14 февраля 2002 г.», электронные письма: [{email: '[email protected]',type: 'WORK',},{email: '[email protected]',type: 'HOME',},],имя: {formatted_name: 'Daggie Blanqx',first_name: 'Daggie',last_name: 'Blanqx',middle_name: 'M.',суффикс: 'Sr',префикс: 'Sw Engr',},org: {company: 'WhatsApp' ,отдел: 'Дизайн',должность: 'Менеджер',},телефоны: [{phone: '+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 = await Whatsapp.createQRCodeMessage({message: `Ваше сообщение с QR-кодом здесь. Я — сообщение, скрытое в QR-коде.`,imageType: 'png' || 'svg',});let urlOfImage = result.data .qr_image_url;
На изображении ниже показано, как отобразить QR-код:
await Whatsapp.markMessageAsRead({message_id: 'идентификатор вашего сообщения здесь',}); // Неповторяемая ошибка будет выдана, если сообщение не найдено или сообщение, которое уже было прочитано.
Идентификатор кнопки должен иметь длину от 1 до 256 символов.
Название кнопки должно содержать от 1 до 20 символов.
Список предметов ограничен 10.
Описание элементов в списке должно содержать от 1 до 72 символов.
Название списка должно содержать от 1 до 24 символов.
Идентификатор списка должен иметь длину от 1 до 200 символов.
// req.body — это тело запроса, который пингует вебхук. Недопустимые полезные данные вызовут ошибку, и вам следует ответить статусом HTTP 5** или 4**, а не 200. // не забудьте ответить статусом HTTP 200 в конце успешного входящего запроса.let data = Whatsapp.parseMessage( req.body);/*data.isMessage будет иметь значение true, если это сообщение от клиента, в противном случае оно будет ложным. data.isNotificationMessage будет иметь значение true, если это так. уведомление от Meta (например, уведомление о доставке/прочтении сообщения), в противном случае оно будет ложным. Данные выдадут ошибку, если тело запроса веб-перехватчика недействительно или не из Meta.*/
если (данные?.isMessage) {let incomingMessage = data.message; пусть получательPhone = incomingMessage.from.phone; // извлекаем номер телефона клиента-получателя, имя получателя = incomingMessage.from.name; // извлекаем имя клиентлета typeOfMsg = incomingMessage.type; // извлекаем тип сообщения message_id = incomingMessage.message_id; // извлекаем идентификатор сообщения (typeOfMsg === 'simple_button_message') {let button_id = incomingMessage.button_reply.id;if (button_id === 'book_appointment') {// Клиент нажал простую кнопку с идентификатором 'book_appointment' '.// Вы можете ответить на них исходящим действием, например текстовым сообщением await Whatsapp.sendText({message: `Здравствуйте, клиент! Вы нажали кнопку «записаться на прием», recipientPhone: «здесь ваш номер телефона получателя»,});};};
если (данные?.isMessage) {let incomingMessage = data.message; пусть получательPhone = incomingMessage.from.phone; // извлекаем номер телефона клиента-получателя, имя получателя = incomingMessage.from.name; // извлекаем имя клиентлета typeOfMsg = incomingMessage.type; // извлекаем тип сообщения message_id = incomingMessage.message_id; // извлекаем идентификатор сообщения (typeOfMsg === 'radio_button_message') {let choiceId = incomingMessage.list_reply.id;if (selectionId === 'morning_session') {// Клиент выбрал переключатель, идентификатор которого равен 'morning_session' .// Вы можете ответить на них исходящим действием, например, текстовым сообщением и ожиданием. Whatsapp.sendText({message: `Вы выбрали опцию 'morning_session',recipientPhone: 'здесь ваш номер телефона получателя'});};};
Если у вас есть вопросы, задавайте их на дискуссионных форумах GitHub.
Если у вас есть предложения или отзывы, откройте проблему или создайте запрос на включение.
Этот пакет находится в активной разработке.
Это означает, что новые функции добавляются регулярно.
Если ваша любимая функция отсутствует, вы всегда можете вернуть версию назад или создать запрос на включение, который будет рассмотрен и включен в следующий выпуск.
Спасибо за ваш вклад.
Приятного кодирования!
Следуйте за мной в Твиттере: @daggieblanqx
Я также есть в LinkedIn, где вы можете отметить меня в замечательных проектах, которые вы создали с помощью этого пакета: @daggieblanqx
Сообщения в блоге: Logrocket/@Daggieblanqx