軟件包Rhymen/Go-Whatsapp實現WhatsApp Web API,為開發人員提供乾淨的界面。非常感謝Sigalor/WhatsApp-Web-Reveng項目的所有貢獻者。 WhatsApp官方業務API於2018年8月發布。您可以在此處查看。
此軟件包目前尚未積極維護,並且隨著WhatsApp更新到多設備的更新,這將是不可用的。請查看Tulir/WhatsMeow的Go WhatsApp Web API,並支持WhatsApp多設備。
go get github.com/Rhymen/go-whatsapp import (
whatsapp "github.com/Rhymen/go-whatsapp"
)
wac , err := whatsapp . NewConn ( 20 * time . Second )傳遞給NewConn函數的持續時間用於超時登錄請求。如果您的Internet連接不良,則使用更高的超時值。此功能僅創建一個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,視頻,音頻和檔案儀提供了下載功能以獲取媒體數據。
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,FROFME,狀態)。目前,我們只支持短信,但計劃在不久的將來進行其他類型。
該代碼絕不與WhatsApp或其任何分支機構或子公司相關,授權,維護,贊助或認可。這是一個獨立且非正式的軟件。自行使用。
麻省理工學院許可證(MIT)
版權(C)2018
特此免費授予獲得此軟件副本和相關文檔文件副本(“軟件”)的任何人,以無限制處理該軟件,包括無限制的使用權,複製,複製,修改,合併,合併,發布,分發,分發,分發,訂婚,和/或允許軟件的副本,並允許對以下條件提供以下條件,以下是以下條件。
上述版權通知和此許可通知應包含在軟件的所有副本或大量部分中。
該軟件是“原樣”提供的,沒有任何形式的明示或暗示保證,包括但不限於適銷性,特定目的的適用性和非侵權的保證。在任何情況下,作者或版權持有人都不應對任何索賠,損害賠償或其他責任責任,無論是在合同,侵權的訴訟中還是其他責任,是由軟件,使用或與軟件中的使用或其他交易有關的。