Пакет Rhymen/Go-WhatApps реализует веб-API WhatsApp, чтобы обеспечить чистый интерфейс для разработчиков. Большое спасибо всем участникам проекта Sigalor/WhatsApp-Web-Reveng. Официальный API Business WhatsApp был выпущен в августе 2018 года. Вы можете проверить его здесь.
Этот пакет не поддерживается в настоящее время активно и вскоре будет необходимы в качестве обновлений WhatsApp для нескольких устройств. Пожалуйста, посмотрите на Tulir/WhatsMeow для Go WhatsApp Web API, который активно поддерживается и поддерживает WhatsApp Multi-Device.
go get github.com/Rhymen/go-whatsapp import (
whatsapp "github.com/Rhymen/go-whatsapp"
)
wac , err := whatsapp . NewConn ( 20 * time . Second )Продолжительность, передаваемая в функцию NewConn, используется для запросов входа в систему времени ожидания. Если у вас плохое подключение к Интернету, используйте более высокое время ожидания. Эта функция создает только подключение к WebSocket, она не обрабатывает аутентификацию.
qrChan := make ( chan string )
go func () {
fmt . Printf ( "qr code: %v n " , <- qrChan )
//show qr code or save it somewhere to scan
}()
sess , err := wac . Login ( qrChan )Процесс аутентификации требует, чтобы вы сканировали QR -код, который отправляется через канал, с помощью устройства, на котором вы используете WhatsApp. Возвращенная структура сеанса может быть сохранена и используется для восстановления входа в систему без сканирования QR -кода снова. QR -код имеет TTL 20 секунд, а функция входа в систему бросает временный тайм -аут, если время прошло или любой другой запрос не удастся.
newSess , err := wac . RestoreWithSession ( sess )Функция восстановления требует действительного сеанса и возвращает новый сеанс, который был создан.
type myHandler struct {}
func ( myHandler ) HandleError ( err error ) {
fmt . Fprintf ( os . Stderr , "%v" , err )
}
func ( myHandler ) HandleTextMessage ( message whatsapp. TextMessage ) {
fmt . Println ( message )
}
func ( myHandler ) HandleImageMessage ( message whatsapp. ImageMessage ) {
fmt . Println ( message )
}
func ( myHandler ) HandleDocumentMessage ( message whatsapp. DocumentMessage ) {
fmt . Println ( message )
}
func ( myHandler ) HandleVideoMessage ( message whatsapp. VideoMessage ) {
fmt . Println ( message )
}
func ( myHandler ) HandleAudioMessage ( message whatsapp. AudioMessage ){
fmt . Println ( message )
}
func ( myHandler ) HandleJsonMessage ( message string ) {
fmt . Println ( message )
}
func ( myHandler ) HandleContactMessage ( message whatsapp. ContactMessage ) {
fmt . Println ( message )
}
func ( myHandler ) HandleBatteryMessage ( message whatsapp. BatteryMessage ) {
fmt . Println ( message )
}
func ( myHandler ) HandleNewContact ( contact whatsapp. Contact ) {
fmt . Println ( contact )
}
wac . AddHandler ( myHandler {})Обработчики сообщений не являются обязательными, вам не нужно реализовать что -либо, кроме обработчика ошибок для реализации интерфейса. ImageMessage, Videomessage, Audiomessage и DocumentMessage предоставляют функцию загрузки для получения данных СМИ.
text := whatsapp. TextMessage {
Info : whatsapp. MessageInfo {
RemoteJid : "[email protected]" ,
},
Text : "Hello Whatsapp" ,
}
err := wac . Send ( text ) contactMessage := whatsapp. ContactMessage {
Info : whatsapp. MessageInfo {
RemoteJid : "[email protected]" ,
},
DisplayName : "Luke Skylwallker" ,
Vcard : "BEGIN:VCARD n VERSION:3.0 n N:Skyllwalker;Luke;; n FN:Luke Skywallker n item1.TEL;waid=0123456789:+1 23 456789789 n item1.X-ABLabel:Mobile n END:VCARD" ,
}
id , error := client . WaConn . Send ( contactMessage )Сообщение будет отправлено через WebSocket. Приведенные выше атрибуты являются необходимыми. Все остальные соответствующие атрибуты (ID, TimeStamp, FromMe, статус) устанавливаются, если они отсутствуют в структуре. В настоящее время мы поддерживаем только текстовые сообщения, но другие типы запланированы на ближайшее будущее.
Этот код никоим образом не связан с, уполномоченным, поддерживаемым, спонсируемым или одобренным WhatsApp или какими -либо из его филиалов или дочерних компаний. Это независимое и неофициальное программное обеспечение. Используйте свой собственный риск.
Лицензия MIT (MIT)
Авторские права (C) 2018
Настоящим дается разрешение, бесплатно, любому лицу, получающему копию этого программного обеспечения и связанные с ними файлы документации («Программное обеспечение»), чтобы иметь дело в программном обеспечении без ограничений, включая, без ограничения, права на использование, копирование, изменение, объединение, публикацию, распределение, сублиценность и/или продавать копии программного обеспечения и разрешения лиц, на которые программное обеспечение подходит для того, чтобы поступить так, чтобы поступить на следующие условия: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: на следующие условия: к следующим условиям: на следующие условия: на следующие условия.
Вышеуказанное уведомление об авторском праве и это уведомление о разрешении должно быть включено во все копии или существенные части программного обеспечения.
Программное обеспечение предоставляется «как есть», без гарантии любого рода, явного или подразумеваемого, включая, помимо прочего, гарантии товарной пригодности, пригодности для определенной цели и несоответствия. Ни в коем случае авторы или владельцы авторских прав не будут нести ответственность за любые претензии, убытки или другую ответственность, будь то в действии контракта, деликт или иным образом, возникающие из или в связи с программным обеспечением или использованием или другими сделками в программном обеспечении.