الحصول على صورة كود QR

يعيد صورة PNG لكود QR الخاص بواتساب مشفرة بصيغة base64 لسهولة العرض في تطبيقات الويب والهاتف.

POST
https://api.wawp.net/v2/auth/qr-image?access_token=YOUR_ACCESS_TOKEN&instance_id=Your_Instance_ID

تسجيل الدخول مطلوب

سجل الدخول لاستبدال المعرفات (Instance ID) ورمز الوصول (Access Token) بمعلومات حسابك الحقيقي لاختبار ال API مباشرة.

تسجيل الدخول
اختبار /v2/auth/qr-image
POSTGET

لا توجد معاملات استعلام مطلوبة

هذه النهاية الطرفية لا تتوقع بيانات في الرابط.

توصيات

  • قم بالتضمين مباشرة في الواجهة الأمامية دون الحفظ على القرص لأمان أفضل.

  • قم بتحديث الصورة كل 30 ثانية لتجنب عرض رموز منتهية الصلاحية.

  • لا تقم بتخزين هذه الاستجابة مؤقتًا؛ اجلب دائمًا صورة جديدة.

البوابة المرئية: دليل احترافي لمصادقة صورة QR

يُعد الرابط /v2/auth/qr-image المعيار الذهبي لتكاملات واتساب القائمة على الويب. فهو يبسط تعقيد البيانات الثنائية، ويوفر Data URI جاهزاً للاستخدام يمكن حقنه مباشرة في أي متصفح حديث. تم ضبط هذا الرابط خصيصاً للسرعة وسهولة الاستخدام في لوحات التحكم المبنية بـ React أو Vue أو JS العادية.


🏗️ تشريح استجابة Data URI

عند استدعاء هذا الرابط، تتلقى استجابة JSON تحتوي على حقل qr واحد. يبدأ هذا الحقل ببادئة data:image/png;base64,....

  • القيمة الأساسية: هي صورة PNG عالية التباين ومحسنة لكود اقتران واتساب.
  • التنفيذ في الواجهة الأمامية:
    // مثال: تحديث عنصر صورة باستخدام Vanilla JS
    fetch('/v2/auth/qr-image', { method: 'POST', body: JSON.stringify({ instance_id, access_token }) })
      .then(res => res.json())
      .then(data => {
        document.getElementById('qr-container').src = data.qr;
      });
    

🛡️ أفضل الممارسات الاستراتيجية

1. التحديث الذكي لواجهة المستخدم

نظراً لأن أكواد QR تتحدث بشكل متكرر (كل 20-40 ثانية)، فمن الضروري تحديث الصورة دورياً.

  • الاستراتيجية: اضبط فاصلاً زمنياً لتحديث الصورة كل 5-10 ثوانٍ لضمان أن الكود الذي يراه المستخدم صالح دائماً.
  • تجربة المستخدم: أضف مؤشر تحميل بسيط عند تحديث الصورة لإعلام المستخدم أن النظام يحافظ على استمرارية الرابط.

2. إتقان حالة التعافي التلقائي (خطأ 422)

تتميز Wawp بوجود مُعالج المحرك الخلفي. إذا استدعيت هذا الرابط وكان المحرك غير متزامن، سيعود خطأ 422 Session Status Not Expected.

  • دورة الحياة: تشير هذه الاستجابة إلى أن نظامنا قد اكتشف تعطلاً ويقوم حالياً بسلسلة Stop -> Start تلقائياً لك.
  • إجراء المطور: لا تعرض خطأ "فشلت العملية"، بل اعرض رسالة مثل "يتم استعادة اتصال المحرك... يرجى الانتظار 15 ثانية". بعد ذلك، أعد المحاولة.

3. إدارة التخزين المؤقت

لضمان الأمان، يتم تقديم هذا الرابط مع ترويسة Cache-Control: no-store.

  • تحذير: لا تحاول أبداً تجاوز هذه الترويسة. تخزين صورة QR في الذاكرة المؤقتة يشكل خطراً أمنياً وسيؤدي إلى أخطاء في المسح للمستخدم.

💡 حالات استخدام المطورين

أ. لوحات التحكم المتجاوبة للهواتف

صورة PNG التي يعيدها هذا الرابط مصممة لتكون عالية التباين وواضحة حتى على شاشات الهواتف اقتصادية التكلفة، مما يجعلها مثالية لسيناريوهات "المسح من الجهاز اللوحي".

ب. شريط تقدم الإعداد

من خلال مراقبة استجابة هذا الرابط مع /v2/session/info، يمكنك بناء دليل إعداد متعدد الخطوات:

  1. الخطوة 1: "تسخين المحرك" (الجلب حتى تصبح الحالة SCAN_QR_CODE).
  2. الخطوة 2: "جاهز للمسح" (جلب وعرض صورة QR).
  3. الخطوة 3: "نجاح!" (الانتقال إلى حالة WORKING).

⚠️ الأخطاء الشائعة

  • تسرب طلبات GET: تجنب استخدام طلبات GET في لوحات التحكم الإنتاجية. فالمتصفحات غالباً ما تسجل معاملات GET (مثل access_token) في السجل. استخدم POST للحفاظ على سرية بياناتك.
  • تجاهل نوع الملف (Mimetype): تأكد دائماً من أن علامة الصورة أو خاصية CSS تتعامل بشكل صحيح مع بادئة data:image/png;base64.

ملخص القدرات:

  • الحصول الفوري على صورة PNG جاهزة للمسح لكود QR الخاص بواتساب.
  • الاستفادة من قوة Data URIs للعرض بضغطة واحدة.
  • تفعيل ميزة الإصلاح التلقائي للبيئة أثناء عدم التزامن.
  • الحفاظ على أمان عالٍ ببيانات مرئية غير دائمة وغير مخزنة مؤقتاً.

البارامترات

قم بتهيئة المعاملات المطلوبة للتفاعل مع نقطة النهاية هذه. جميع وسائط الاستعلام والبيانات مدرجة أدناه مع تفاصيلها.

محتوى الطلب

يرسل كـ JSON
string

معرف النسخة المكون من 12 رمزاً

مثال:
string

مفتاح الوصول الخاص بـ API

مثال:

أمثلة الكود

استخدم أمثلة الكود الجاهزة لدمج واجهة برمجة التطبيقات (API) في مشروعك بسرعة وكفاءة. اختر لغة البرمجة والمكتبة التي تفضلها.

1const baseUrl = "https://api.wawp.net";
2const endpoint = "/v2/auth/qr-image";
3const params = new URLSearchParams({
4 "instance_id": "Your_Instance_ID",
5 "access_token": "YOUR_ACCESS_TOKEN"
6}).toString();
7
8
9fetch(`${baseUrl}${endpoint}${params ? '?' + params : ''}`, {
10 method: "POST",
11 headers: { "Content-Type": "application/json" },
12
13})
14 .then(async (response) => {
15 if (response.ok) {
16 const data = await response.json();
17 console.log("Success:", data);
18 return data;
19 }
20
21 // Error Handling
22 if (response.status === 400) {
23 console.error("Error 400: طلب غير صالح - معاملات مطلوبة مفقودة");
24 }
25 if (response.status === 400) {
26 console.error("Error 400: طلب غير صالح (تنسيق XML)");
27 }
28 if (response.status === 400) {
29 console.error("Error 400: طلب غير صالح (نص عادي)");
30 }
31 if (response.status === 401) {
32 console.error("Error 401: غير مصرح - مفتاح الوصول غير صالح أو مفقود");
33 }
34 if (response.status === 401) {
35 console.error("Error 401: غير مصرح (تنسيق XML)");
36 }
37 if (response.status === 404) {
38 console.error("Error 404: غير موجود - الجلسة غير موجودة");
39 }
40 if (response.status === 404) {
41 console.error("Error 404: غير موجود (تنسيق XML)");
42 }
43 if (response.status === 500) {
44 console.error("Error 500: خطأ في الخادم الداخلي - فشل غير متوقع");
45 }
46 if (response.status === 500) {
47 console.error("Error 500: خطأ في الخادم الداخلي (HTML)");
48 }
49 if (response.status === 502) {
50 console.error("Error 502: بوابة غير صالحة - فشل الاتصال بالخادم الرئيسي");
51 }
52 if (response.status === 502) {
53 console.error("Error 502: بوابة غير صالحة (تنسيق XML)");
54 }
55 if (response.status === 422) {
56 console.error("Error 422: Unprocessable Entity - Session Status Mismatch");
57 }
58
59 const errorText = await response.text();
60 console.error(`Error ${response.status}: ${errorText}`);
61 })
62 .catch((error) => console.error("Network Error:", error));
عينات تفاعلية
Ln 62, Col 1javascript

الردود المتوقعة

استكشف كافة الردود والنتائج المحتملة من الخادم. قمنا بتوثيق كل كود حالة (Status Code) مع أمثلة للبيانات لتسهيل معالجة الأخطاء والنجاح.

تم استرداد رابط صورة كود QR بنجاح.
النوع:
application/json
string *

Example

{
"qr": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA..."
}
طلب غير صالح - معاملات مطلوبة مفقودة
غير مصرح - مفتاح الوصول غير صالح أو مفقود
غير موجود - الجلسة غير موجودة
Unprocessable Entity - Session Status Mismatch
خطأ في الخادم الداخلي - فشل غير متوقع
بوابة غير صالحة - فشل الاتصال بالخادم الرئيسي
الموضوع السابقالحصول على كود QR الخام
الموضوع التاليإرسال رمز التحقق (OTP)

Command Palette

Search for a command to run...