패키지 Rhymen/Go-Whatsapp는 WhatsApp 웹 API를 구현하여 개발자에게 깨끗한 인터페이스를 제공합니다. Sigalor/Whatsapp-Web-Reveng 프로젝트의 모든 기고자들에게 큰 감사를드립니다. 공식 WhatsApp 비즈니스 API는 2018 년 8 월에 출시되었습니다. 여기에서 확인할 수 있습니다.
이 패키지는 현재 적극적으로 유지 관리되지 않으며 WhatsApp이 다중 장치에 대한 업데이트로 곧 사용할 수 없습니다. Tulir/Whatsmeow를보십시오. whatsapp 웹 API는 whatsapp 다중 장치를 지원합니다.
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 )인증 프로세스를 사용하려면 WhatsApp을 사용하는 장치를 사용하여 채널을 통해 전송되는 QR 코드를 스캔해야합니다. 반환 된 세션 구조는 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, status)은 구조물에 누락 된 경우 설정됩니다. 당분간 우리는 문자 메시지 만 지원하지만 가까운 장래에 다른 유형이 계획됩니다.
이 코드는 WhatsApp 또는 그 계열사 또는 자회사에 의해 제휴, 승인, 유지 관리, 후원 또는 승인되지 않습니다. 이것은 독립적이고 비공식 소프트웨어입니다. 자신의 위험에 사용하십시오.
MIT 라이센스 (MIT)
저작권 (C) 2018
이에 따라이 소프트웨어 및 관련 문서 파일 ( "소프트웨어")의 사본을 얻는 사람에게는 허가가 부여됩니다. 소프트웨어의 사용, 복사, 수정, 합병, 배포, 배포, 숭고 및/또는 소프트웨어의 사본을 판매 할 권한을 포함하여 제한없이 소프트웨어를 처리 할 수 있도록 소프트웨어를 제공 할 권한이 없습니다.
위의 저작권 통지 및이 권한 통지는 소프트웨어의 모든 사본 또는 실질적인 부분에 포함되어야합니다.
이 소프트웨어는 상업성, 특정 목적에 대한 적합성 및 비 침해에 대한 보증을 포함하여 명시 적 또는 묵시적 보증없이 "그대로"제공됩니다. 어떠한 경우에도 저자 또는 저작권 보유자는 계약, 불법 행위 또는 기타, 소프트웨어 또는 소프트웨어의 사용 또는 기타 거래에서 발생하는 계약, 불법 행위 또는 기타의 행동에 관계없이 청구, 손해 또는 기타 책임에 대해 책임을지지 않습니다.