حزمة القافية/go-whatsapp تنفذ واجهة برمجة تطبيقات WhatsApp ويب لتوفير واجهة نظيفة للمطورين. شكراً جزيلاً لجميع المساهمين في مشروع Sigalor/WhatsApp-Web-Reveng. تم إصدار واجهة برمجة تطبيقات WhatsApp الرسمية في أغسطس 2018. يمكنك التحقق من ذلك هنا.
لا يتم الحفاظ على هذه الحزمة بنشاط حاليًا وستكون غير مستخدمة قريبًا مع تحديثات WhatsApp إلى متعددة الأجهزة. يرجى إلقاء نظرة على Tulir/WhatsMeow للحصول على واجهة برمجة تطبيقات WhatsApp Web Web التي يتم صيانتها بنشاط ويدعم WhatsApp Multi-Device.
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 عليه. يمكن حفظ بنية الجلسة التي يتم إرجاعها واستخدامها لاستعادة تسجيل الدخول دون مسح رمز الاستجابة السريعة مرة أخرى. يحتوي رمز الاستجابة السريعة على 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 {})جميع معالجات الرسائل اختيارية ، لا تحتاج إلى تنفيذ أي شيء سوى معالج الخطأ لتنفيذ الواجهة. توفر خيالي ، 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 ، الحالة) إذا كانت مفقودة في البنية. في الوقت الحالي ، نحن ندعم الرسائل النصية فقط ، ولكن يتم التخطيط لأنواع أخرى في المستقبل القريب.
هذا الرمز لا ينتم بأي حال من الأحوال إلى أو معتمدة أو صيانة أو رعاية أو تأييدها من قبل WhatsApp أو أي من الشركات التابعة لها أو الشركات التابعة. هذا هو برنامج مستقل وغير رسمي. استخدم على مسؤوليتك الخاصة.
ترخيص معهد ماساتشوستس للتكنولوجيا (MIT)
حقوق الطبع والنشر (ج) 2018
يتم منح الإذن بموجب هذا ، مجانًا ، لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج") ، للتعامل في البرنامج دون تقييد ، بما في ذلك على سبيل المثال لا الحصر حقوق استخدام الأشخاص ونسخها ودمجها ودمجها وتوزيعها وتوزيعها على ما يلي:
يجب إدراج إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو" ، دون أي ضمان من أي نوع ، صريح أو ضمني ، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق واللياقة لغرض معين وعدم الانفجار. لا يجوز بأي حال من الأحوال أن يكون المؤلفون أو حاملي حقوق الطبع والنشر مسؤولاً عن أي مطالبة أو أضرار أو مسؤولية أخرى ، سواء في إجراء عقد أو ضرر أو غير ذلك ، ناشئة عن أو خارج البرنامج أو الاستخدام أو غيرها من المعاملات في البرنامج.