الحصول على كود QR الخام
يستخرج هذا الرابط بيانات كود QR الخام كبيانات ثنائية أو بصيغة base64 مع تحديد نوع الملف (mimetype).
تسجيل الدخول مطلوب
سجل الدخول لاستبدال المعرفات (Instance ID) ورمز الوصول (Access Token) بمعلومات حسابك الحقيقي لاختبار ال API مباشرة.
تسجيل الدخوللا توجد معاملات استعلام مطلوبة
هذه النهاية الطرفية لا تتوقع بيانات في الرابط.
توصيات
استخدم نقطة النهاية هذه للوحات تحكم CLI المخصصة أو تكاملات تطبيقات الهاتف المحمول.
قم بفك تشفير حقل 'data' بتنسيق Base64 قبل تمريره إلى مكتبة توليد QR.
قم بتنفيذ آلية استطلاع لجلب رمز جديد عند انتهاء الصلاحية.
فك شيفرة البروتوكول: دليل بيانات QR الخام
يُعد الرابط /v2/auth/qr أداة متخصصة للمطورين الذين يحتاجون إلى تحكم دقيق في عملية المصادقة. بخلاف رابط الصورة، يوفر هذا المسار سلسلة البروتوكول الخام بتنسيق Base64، وهو أمر ضروري لإنشاء مولدات QR مخصصة، أو أدوات سطر الأوامر (CLI)، أو تطبيقات الهاتف الأصلية.
🏗️ التحليل التقني: مغلف JSON
تحصل من هذا الرابط على كائن JSON يحتوي على مكونين رئيسيين:
- mimetype: عادة ما يكون
application/json، مما يشير إلى أن البيانات عبارة عن كائن بيانات مهيكل. - data: سلسلة نصية مشفرة بصيغة Base64. بمجرد فك تشفيرها، تنتج كائن JSON يحتوي على توقيع البروتوكول المطلوب بواسطة WhatsApp WebSocket.
هيكل البيانات بعد فك التشفير
عند فك تشفير حقل data، ستجد:
- value: السلسلة النصية الفعلية التي يجب تحويلها إلى نمط QR.
- expiry: طابع زمني (Unix timestamp) يمثل اللحظة التي سينتهي فيها صلاحية هذا الكود من قبل خوادم واتساب.
🛡️ أفضل الممارسات الاستراتيجية
1. تنفيذ عارض ASCII لسطر الأوامر
إذا كنت تبني أداة لسطر الأوامر (مثل مدير VPS)، فإن الحصول على سلسلة QR الخام يسمح لك بعرض الكود مباشرة في الطرفية باستخدام أحرف ASCII.
- إجراء المطور: استخدم مكتبة مثل
qrcode-terminalفي Node.js وقم بتمرير قيمةvalueإليها لعرض النمط القابل للمسح مباشرة للمسؤولين.
2. التزامن وحدود الطلبات
يعد جلب كود QR الخام عملية تستهلك موارد لأنها تتطلب فحص حالة المحرك في الوقت الفعلي.
- نافذة الجلب: نوصي بفاصل زمني يتراوح بين 5-7 ثوانٍ. الجلب بمعدل أسرع من ذلك لن يعطي كوداً "أحدث" (لأن واتساب يقوم بتدوير الأكواد كل 20-30 ثانية) وقد يؤدي ذلك لظهور خطأ 429.
3. التعامل مع نافذة التعافي (حالة 422)
إذا كان المحرك مشغولاً بإعادة ضبط جسر واتساب الداخلي، ستتلقى خطأ 422 Session Status Not Expected.
- الحل: هذا ليس فشلاً، بل إشارة "يرجى الانتظار". يجب أن ينفذ تطبيقك استراتيجية انتظار (exponential backoff) والانتظار لمدة 10 ثوانٍ قبل محاولة الجلب مرة أخرى.
💡 حالات الاستخدام القياسية
أ. تكامل تطبيقات الهاتف
يمكنك جلب سلسلة QR الخام واستخدام مكتبات إنشاء كود QR الأصلية في نظام iOS أو Android، مما يؤدي لظهور الكود بوضوح أعلى وتباين أفضل يسهل مسحه.
ب. لوحات التحكم عالية الأمان
في البيئات التي لا تريد فيها تحميل صور خارجية من خوادمنا، يمكنك جلب السلسلة الخام على خادمك الخاص، والتحقق منها، ثم إنشاء نمط QR محلياً باستخدام التصميم الخاص بشركتك.
⚠️ الأخطاء الشائعة
- البيانات الثنائية مقابل النص: حقل
dataمشفر بصيغة Base64. إذا حاولت تمريره مباشرة لمولد QR دون فك تشفيره، سيفشل المسح لأنه سيتم تفسيره كنص حرفي بدلاً من كونه معرف بروتوكول واتساب. - تجاهل الصلاحية: تحقق دائماً من حقل
expiry. إذا عرضت كوداً منتهي الصلاحية، سيظهر للمستخدم خطأ "منتهي" على هاتفه، مما يسبب تجربة مستخدم سيئة.
ملخص المسؤوليات:
- استرجاع السلسلة التشفيرية الخام المطلوبة لمصادقة واتساب.
- توفير مغلف JSON مغلف بـ Base64 لضمان توافق البروتوكول.
- تمكين العرض المخصص في البيئات غير المتصفحية (CLI، Mobile).
- تسهيل المراقبة المتقدمة لدورات تدوير كود QR وصلاحيته.
البارامترات
قم بتهيئة المعاملات المطلوبة للتفاعل مع نقطة النهاية هذه. جميع وسائط الاستعلام والبيانات مدرجة أدناه مع تفاصيلها.
محتوى الطلب
يرسل كـ JSONstring | معرف النسخة المكون من 12 رمزاً مثال: | ||
string | مفتاح الوصول الخاص بـ API مثال: | ||
string | — | تنسيق المخرجات (الافتراضي: raw) مثال: |
أمثلة الكود
استخدم أمثلة الكود الجاهزة لدمج واجهة برمجة التطبيقات (API) في مشروعك بسرعة وكفاءة. اختر لغة البرمجة والمكتبة التي تفضلها.
الردود المتوقعة
استكشف كافة الردود والنتائج المحتملة من الخادم. قمنا بتوثيق كل كود حالة (Status Code) مع أمثلة للبيانات لتسهيل معالجة الأخطاء والنجاح.
Example
{
"mimetype": "application/json; charset=utf-8",
"data": "eyJ2YWx1ZSI6IjJAR0JoWWtpTkV1U0tpeXpIeVVOYy9RQi9lTnhpSkJWSE96bGhOQ1daRERvRUZyOEhDWEhxTENKdEVpZHh6WWoxWkpqRzZ4K2NOaFVlVGlZeUJHWExJQzU1Z2ppKzRHQ2VyakRvPSIsImV4cGlyeSI6MTIzNDU2Nzg5MH0="
}Command Palette
Search for a command to run...