Package Rhymen / Go-WhatsApp implémente l'API Web WhatsApp pour fournir une interface propre aux développeurs. Un grand merci à tous les contributeurs du projet Sigalor / WhatsApp-Web-Reveng. L'API officielle de WhatsApp Business a été publiée en août 2018. Vous pouvez le vérifier ici.
Ce package n'est pas activement entretenu actuellement et sera bientôt inhabituel en tant que mises à jour WhatsApp à plusieurs disques. Veuillez consulter Tulir / WhatsMeow pour une API Web Go WhatsApp qui est activement entretenue et prend en charge WhatsApp Multi-Device.
go get github.com/Rhymen/go-whatsapp import (
whatsapp "github.com/Rhymen/go-whatsapp"
)
wac , err := whatsapp . NewConn ( 20 * time . Second )La durée transmise à la fonction newConn est utilisée pour délasser les demandes de connexion. Si vous avez une mauvaise connexion Internet, utilisez une valeur de délai d'expiration plus élevée. Cette fonction ne crée qu'une connexion WebSocket, elle ne gère pas l'authentification.
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 )Le processus d'authentification vous oblige à scanner le code QR, c'est-à-dire envoyer le canal, avec l'appareil sur lequel vous utilisez WhatsApp. La structure de session qui est renvoyée peut être enregistrée et utilisée pour restaurer la connexion sans scanner à nouveau le code QR. Le code QR a un TTL de 20 secondes et la fonction de connexion lance un délai d'expiration si le temps a passé ou toute autre demande échoue.
newSess , err := wac . RestoreWithSession ( sess )La fonction de restauration a besoin d'une session valide et renvoie la nouvelle session créée.
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 {})Les gestionnaires de messages sont tous facultatifs, vous n'avez pas besoin d'implémenter autre chose que le gestionnaire d'erreurs pour implémenter l'interface. L'ImageMessage, la vidéosse, l'audiomessage et le documentMessage fournissent une fonction de téléchargement pour obtenir les données multimédias.
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 )Le message sera envoyé sur le WebSocket. Les attributs vus ci-dessus sont ceux requis. Tous les autres attributs pertinents (ID, horodatage, FromMe, Status) sont définis s'ils sont manquants dans la structure. Pour le moment, nous prenons uniquement des messages texte, mais d'autres types sont prévus pour un avenir proche.
Ce code n'est en aucun cas affilié, autorisé, maintenu, parrainé ou approuvé par WhatsApp ou l'un de ses sociétés affiliées ou filiales. Il s'agit d'un logiciel indépendant et non officiel. Utiliser à vos risques et périls.
La licence du MIT (MIT)
Copyright (C) 2018
L'autorisation est accordée gratuitement à toute personne qui obtient une copie de ce logiciel et des fichiers de documentation associés (le "logiciel"), pour traiter le logiciel sans restriction, y compris sans limiter les droits d'utilisation, de copie, de modification, de fusion, de publication, de distribution, de sublince et / ou de vendre des copies des conditions suivantes.
L'avis de droit d'auteur ci-dessus et le présent avis d'autorisation sont inclus dans toutes les copies ou des parties substantielles du logiciel.
Le logiciel est fourni "tel quel", sans garantie d'aucune sorte, express ou implicite, y compris, mais sans s'y limiter, les garanties de qualité marchande, d'adéquation à un usage particulier et de non-contrefaçon. En aucun cas, les auteurs ou les détenteurs de droits d'auteur ne seront pas responsables de toute réclamation, dommage ou autre responsabilité, que ce soit dans une action de contrat, de délit ou autre, découlant de, hors du logiciel ou de l'utilisation ou d'autres relations dans le logiciel.