Paket Rhymen/Go-WhatsApp mengimplementasikan WhatsApp Web API untuk menyediakan antarmuka yang bersih untuk pengembang. Terima kasih banyak untuk semua kontributor proyek Sigalor/WhatsApp-Web-Reveng. WhatsApp Business API resmi dirilis pada Agustus 2018. Anda dapat memeriksanya di sini.
Paket ini tidak dipertahankan secara aktif saat ini dan akan segera tidak dapat digunakan sebagai pembaruan WhatsApp untuk multi-perangkat. Silakan lihat Tulir/whatsmeow untuk go whatsapp web API yang secara aktif dipertahankan dan mendukung whatsapp multi-perangkat.
go get github.com/Rhymen/go-whatsapp import (
whatsapp "github.com/Rhymen/go-whatsapp"
)
wac , err := whatsapp . NewConn ( 20 * time . Second )Durasi yang diteruskan ke fungsi NewConn digunakan untuk memenuhi permintaan login. Jika Anda memiliki koneksi internet yang buruk, gunakan nilai batas waktu yang lebih tinggi. Fungsi ini hanya membuat koneksi WebSocket, tidak menangani otentikasi.
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 )Proses otentikasi mengharuskan Anda untuk memindai kode QR, yang dikirim melalui saluran, dengan perangkat tempat Anda menggunakan WhatsApp. Struct sesi yang dikembalikan dapat disimpan dan digunakan untuk mengembalikan login tanpa memindai kode QR lagi. Kode QR memiliki TTL 20 detik dan fungsi login melempar batas waktu jika waktu telah berlalu atau permintaan lainnya gagal.
newSess , err := wac . RestoreWithSession ( sess )Fungsi pemulihan membutuhkan sesi yang valid dan mengembalikan sesi baru yang dibuat.
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 {})Penangan pesan semuanya opsional, Anda tidak perlu menerapkan apa pun kecuali penangan kesalahan untuk mengimplementasikan antarmuka. Imagemessage, Videomessage, Audiomessage dan DocumentMessage menyediakan fungsi unduhan untuk mendapatkan data media.
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 )Pesan akan dikirim melalui Websocket. Atribut yang terlihat di atas adalah yang diperlukan. Semua atribut relevan lainnya (ID, stempel waktu, dari Status, status) ditetapkan jika mereka hilang di struct. Untuk saat ini kami hanya mendukung pesan teks, tetapi jenis lain direncanakan untuk waktu dekat.
Kode ini sama sekali tidak berafiliasi dengan, disahkan, dipelihara, disponsori, atau didukung oleh WhatsApp atau afiliasinya atau anak perusahaannya. Ini adalah perangkat lunak yang independen dan tidak resmi. Gunakan dengan risiko Anda sendiri.
Lisensi MIT (MIT)
Hak Cipta (C) 2018
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus dimasukkan dalam semua salinan atau bagian substansial dari perangkat lunak.
Perangkat lunak ini disediakan "sebagaimana adanya", tanpa jaminan apa pun, tersurat maupun tersirat, termasuk tetapi tidak terbatas pada jaminan dapat diperjualbelikan, kebugaran untuk tujuan tertentu dan nonpringement. Dalam hal apa pun penulis atau pemegang hak cipta tidak akan bertanggung jawab atas klaim, kerusakan atau tanggung jawab lainnya, baik dalam tindakan kontrak, gugatan atau sebaliknya, timbul dari, di luar atau sehubungan dengan perangkat lunak atau penggunaan atau transaksi lain dalam perangkat lunak.