パッケージRhymen/Go-WhatsAppは、WhatsApp Web APIを実装して、開発者にクリーンなインターフェイスを提供します。 Sigalor/WhatsApp-Web-Revengプロジェクトのすべての貢献者に感謝します。公式のWhatsApp Business APIは2018年8月にリリースされました。こちらで確認できます。
このパッケージは現在積極的に維持されていないため、Multi-DeviceにWhatsAppが更新されるとすぐに珍しいものになります。積極的に維持され、WhatsAppマルチデバイスをサポートするGO WhatsApp Web APIについては、Tulir/Whatsmeowをご覧ください。
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秒で、ログイン関数は時間が経過した場合、または他の要求が失敗した場合にタイムアウトERRをスローします。
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 {})メッセージハンドラーはすべてオプションです。インターフェイスを実装するためにエラーハンドラー以外のものを実装する必要はありません。イメージメッジ、ビデオメッシャー、オーディオメッジ、ドキュメントメッジは、メディアデータを取得するためのダウンロード関数を提供します。
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、タイムスタンプ、fromme、ステータス)が構造体に欠落している場合に設定されます。当面はテキストメッセージのみをサポートしていますが、近い将来に他のタイプが計画されています。
このコードは、WhatsAppまたはその関連会社または子会社がwhatsAppまたは承認された、承認され、維持、後援、または承認されることはありません。これは独立した非公式のソフトウェアです。あなた自身の責任で使用してください。
MITライセンス(MIT)
著作権(c)2018
このソフトウェアと関連するドキュメントファイル(「ソフトウェア」)のコピーを入手して、制限なしにソフトウェアを扱うために、このソフトウェアを制限する権利を含め、ソフトウェアのコピーをコピー、変更、公開、配布、販売する、ソフトウェアのコピーを許可する人を許可する人を許可することを含めて、許可が無料で許可されます。
上記の著作権通知とこの許可通知は、ソフトウェアのすべてのコピーまたはかなりの部分に含まれるものとします。
このソフトウェアは、商品性、特定の目的への適合性、および非侵害の保証を含むがこれらに限定されない、明示的または黙示的なものを保証することなく、「現状のまま」提供されます。いかなる場合でも、著者または著作権所有者は、契約、不法行為、またはその他の訴訟、ソフトウェアまたはソフトウェアの使用またはその他の取引に関連する、またはその他の契約、またはその他の請求、またはその他の責任について責任を負いません。