AlfaLinks
AlfaLinksإنشاء حساب

دليل الإعداد

عداد روابط خلفية للوحة تحكم SaaS، خطوة بخطوة

العداد الذي يعمل يحتاج مسار خادم واحد ومكون صغير. يبني هذا الدليل كلاهما، مع حالات الفشل التي تنساها معظم الإصدارات الأولى.

حرفي يجمع خمسة تروس ميكانيكية على طاولة ورشة خشبية تمثل خطوات لوحة التحكم
نطاق هذا الدليل

نفترض وجود خادم خلفي بـ Node أو Python وأي إطار عمل للواجهة الأمامية. كل طلب أدناه يضرب الـ API الموثق، وعنوان URL الأساسي هو الخاص بعلامتك التجارية: alfalinks.net/api.php.

خمس خطوات، بالترتيب الذي سنطلقها به

01

1. إنشاء المفتاح وتخزينه كسرية

سجّل الدخول باستخدام Google في /auth/google.php، انسخ مفتاح sk_ من صفحة الحساب وضعه في بيئة الخادم الخاص بك. الواجهة الأمامية لا ترى هذا المفتاح أبداً.

02

2. إضافة مسار وكيل واحد

أظهر شيئاً مثل /internal/links?domain=... الذي يصادق على النطاق، يستدعي الـ API الخاص بنا، ويعيد فقط الحقول التي تستخدمها واجهة المستخدم. المصادقة مهمة لأن المستخدمين يكتبون أي شيء.

03

3. ابدأ بالإجراء المجاني

إجراء overview لا يكلف شيئاً، لذا فإن الإصدار الأول من العداد لا يحمل أي خطر على الفواتير. انتقل إلى الإجراءات المدفوعة عندما تحتاج شاشة ما إليها.

04

4. عرض ثلاث حالات

التحميل، البيانات، وغير متوفر. يغطي غير المتوفر HTTP 401، HTTP 402 وفشل الشبكة، ولا يجب أن يظهر صفراً أبداً.

05

5. إضافة شارة التجديد

يتم تحديث فهرسنا شهرياً تقريباً. سطر رمادي يقرأ 'تم تحديث بيانات الروابط شهرياً' يمنع تذكرة الدعم التي تبدأ بـ 'أضفت رابطاً بالأمس'.

مسار الوكيل، في Node

قصير بما يكفي للقراءة في شاشة واحدة. التخزين المؤقت هو Map عادي هنا؛ استبدله بـ Redis بمجرد تشغيل أكثر من عملية واحدة.

js
const cache = new Map();
const MONTH = 30 * 24 * 3600 * 1000;

app.get('/internal/links', async (req, res) => {
  const domain = String(req.query.domain || '').toLowerCase().trim();
  if (!/^[a-z0-9.-]+\.[a-z]{2,}$/.test(domain)) return res.status(400).json({ok:false});
  const hit = cache.get(domain);
  if (hit && Date.now() - hit.t < MONTH) return res.json(hit.v);
  const r = await fetch(`https://alfalinks.net/api.php?action=overview&q=${domain}`);
  if (!r.ok) return res.status(502).json({ok:false});
  const v = await r.json();
  cache.set(domain, {t: Date.now(), v});
  res.json(v);
});
مزارع يستخدم شبكة واسعة لاصطياد سرب من الطيور يمثل طلبات النطاقات الجماعية

إضافة شارة DR بمجرد عمل العداد

العداد هو النصف السهل. الشارة تحتاج استدعاء إضافي واحد.

لجدول نطاقات العملاء، أرسل طلب bulk_dr واحد مع ما يصل إلى 2000 نطاق بدلاً من استدعاء واحد لكل صف. يكلف هذا 1 رصيد بغض النظر عن عدد الصفوف، ويربط الاستجابة كل نطاق برقم 0-100، والذي تخزنه بجانب المراجعة المؤقتة.

طابق النطاقات على اسم المضيف المعيّر. احذف المخطط، المسار وwww الرائدة، أو ستفقد نصف صفوفك البحث وستظهر فراغات.

اقرأ ملاحظات التقييم لصياغة التسمية، ووصفة التخزين المؤقت لـ TTLs لهذه الاستدعاءات.

أظهر قيمة أولاً، ثم اطلب الإعداد

المستخدمون الجدد نادراً ما يقرأون صفحة الإعداد. يريدون رؤية ما إذا كانت الميزة تستحق الجهد، وعداد الروابط الخلفية الذي يظهر رقماً حقيقياً يجيب على ذلك بشكل أسرع من أي نموذج. ضع القيمة أولاً. الإعداد يأتي ثانياً.

بما أن إجراء المراجعة المجاني لا يحتاج إلى مفتاح، يمكن لشاشتك الأولى أن تظهر رقماً قبل أن يقوم المستخدم بإعداد أي شيء على الإطلاق.

ماذا يحتاج العرض الأول؟

نطاق واحد واستدعاء مجاني فقط. تخيل مستجداً يكتب موقعه الخاص في عملية الترحيب ويرى العداد يظهر ضمن نفس عرض الصفحة. هذا الرقم الوحيد يفعل أكثر لبدء الإعداد من قائمة الخطوات، لذا احتفظ بباقي الإعداد خلفه.

يرى المستخدم ما سيحصل عليه قبل أن يطلب أحد بطاقة أو مفتاحاً أو نموذجاً ثانياً. لا شيء في العرض الأول يجب أن يبدو كبوابة.

أين يجب أن يجلس طلب الإعداد؟

مباشرة بعد الرقم، وليس قبله. سطر قصير مثل 'ربط نطاق لتتبع هذا شهرياً' يناسب تحت العداد. إذا كان نفس الطلب فوق الرقم، يقرأه المستخدم كبوابة ويغادر.

تتبع أي المستخدمين يكملون كل خطوة إعداد. مخطط قمع صغير يظهر أين يتوقف الناس، وتغيير في الصياغة غالباً ما يغير هذا الرقم أكثر من ميزة جديدة.

الاختبار قبل الإطلاق

اختبر المسارات غير السعيدة أولاً. المسارات السعيدة تختبر نفسها.

الغِ المفتاح في البيئة التجريبية وتأكد من أن البطاقة تظهر 'غير متوفر' بدلاً من الصفر. ثم أفرد رصيد اختبار لتشغيل 402، والصق إدخالاً غير صالح مثل نطاق يحتوي على مخطط ومسار نهائي، لإثبات أن المصادق يرفضه قبل إنفاق أي رصيد.

اختبار دخان قصير ينتمي إلى CI. استدعاء overview مجاني واحد على nytimes.com، يعمل ليلاً، يخبرك أن المسار والمفتاح لا يزالان يعملان.

ثلاثة مفاتيح حديدية معلقة على باب خشب بلوط ثقيل يمثل قواعد الوصول وحدود النطاق

من يمكنه البحث عن أي نطاق، وبأي تكلفة

عداد يقبل أي سلسلة هو باب مفتوح لرصيدك. قرر من يمكنه طلب ماذا قبل أن يصبح المسار حياً، واكتب الإجابة في الكود بدلاً من صفحة ويكي لا يفتحها أحد.

ثلاث أسئلة تظهر كل مرة: أي النطاقات، ما الحد الأقصى، وأين يعيش المفتاح.

أي نطاقات يجب السماح للمستخدم بكتابتها؟

فقط تلك التي يمتلكها مساحة العمل، بالإضافة إلى أي عمليات بحث عامة اخترت تقديمها. لنفترض أن مساحة العمل تمتلك موقعين. يمكن للمسار قبول هذين ورفض أي شيء آخر برسالة واضحة، مما يبقي مستأجراً واحداً من إنفاق أرصدة على نطاقات ليست ملكه.

فحص اسم المضيف في المسار هو الحد الأدنى. يثبت أن الإدخال يشبه نطاقاً، وليس أن المستخدم يملكه، لذا احتفظ بقائمة المطالب في قاعدة بياناتك الخاصة كجدول منفصل.

كيف تمنع مستجداً واحدًا من إفراغ الرصيد؟

ضع حصة لكل مساحة عمل في مخزنك الخاص وعد الاستدعاءات هناك. الرصيد لدينا هو صندوق مدفوع مسبقاً واحداً، لذا لا يمكنه إخبارك أي عميل أنفق ماذا. ملاحظات صفحة البحث تغطي الجانب العام لنفس المشكلة. عندما تصل مساحة العمل إلى حدتها، أعد رسالة عادية ودع التخزين المؤقت يستمر في الإجابة بما يملكه بالفعل.

اختر الحد من الحسابات في ملاحظات المقاعد، وليس من تخمين، وأعد النظر فيه عندما تتغير الخطة. اختبر المسار مع مساحة عمل ثانية قبل أن تثق في الحصة.

هل يجب أن يحمل المتصفح المفتاح أبداً؟

لا. يعيش المفتاح على خادمك، ويطلب المتصفح المسار الخاص بك. هذا الانقسام هو أيضاً ما يجعل الحصة ممكنة، حيث يمر كل استدعاء محاسب من خلال الكود الذي تتحكم فيه. إذا ظهر مفتاح في حزمة مُرسلة، قم بتدويره في نفس اليوم وتحقق من سجل الرصيد للاستدعاءات التي لم تقم بها. بعض الفرق تخزن المفتاح في ملف تكوين يقرأه الواجهة الأمامية في وقت البناء، وينتهي هذا الملف في الحزمة. أبقي المفتاح بعيداً عن أي شيء يمكن لخطوة البناء رؤيته، وتحقق من الملفات المرسلة مرة واحدة قبل كل إصدار.

يمكن استدعاء الإجراءات المجانية من صفحة عامة بدون مفتاح، وهذه هي الحالة الوحيدة حيث قد يتحدث المتصفح مع الـ API مباشرة.

ماذا يجب أن يقول العداد، وماذا لا يجب أن يقول

قل أقل مما تعرف. العداد المسمى 'روابط خلفية' يدعو للسؤال 'لماذا يظهر Ahrefs رقماً مختلفاً؟'، والإجابة الصادقة هي أن زاحفين يرون شريطين من الويب.

سمِّ الرقم بمصدره وشهره بدلاً من ذلك. شيء مثل 'النطاقات المرجعية، فهرس AlfaLinks، أكتوبر 2026' أطول، لكنه ينهي الجدل قبل أن يبدأ ويقرأ بشكل جيد في بطاقة صغيرة.

قرب للعرض. المستخدم الذي يرى 12481 يوم الاثنين و12481 يوم الجمعة يثق في الأداة أكثر من واحد يرى تذبذباً، وتحديثنا الشهري يمنحك هذا الاستقرار مجاناً.

إذا كنت تريد رقم 0-100 بجانبه، اقرأ ملاحظات تقييم الروابط الخلفية أولاً. إنها مقياسنا الخاص، لذا فإن التسمية مهمة.

حالات الفشل وما تفعله الواجهة

رموز HTTP هي التي يعيدها الـ API؛ عمود الواجهة هو اقتراحنا.
الإشارةالمعنىما يراه المستخدمما تفعله
HTTP 401مفتاح مفقود أو غير صالح'بيانات الروابط غير متوفرة'صفق نفسك: خطأ في النشر
HTTP 402نفد الرصيد'بيانات الروابط غير متوفرة'أضف رصيداً بـ USDT (TRC-20)
ok: falseتم رفض الطلبرابط إعادة المحاولة المضمنسجل النطاق والإجراء
انتهاء المهلةمشكلة في الشبكةقيمة مخزنة مؤقتاً إذا كان لديك واحدةأعد المحاولة مرة واحدة، ثم تراجع

الحفاظ على العداد صادقاً في الدعم والسجلات

يفشل العداد بصمت أكثر من فشله بصوت عالٍ. سجل ما يكفي للإجابة على السؤال الذي يطرحه العميل التالي، وأبعد البيانات الشخصية عن السجل تماماً. الأسطر القصيرة تفوز. سطر يجيب على سؤال دعم ينقذ وقتاً أكثر من أي تنبيه يمكنك كتابته.

معظم خيوط الدعم حول العداد هي واحدة من ثلاث أسئلة، لذا خطط السجل حولها. احتفظ بهذه الأسئلة الثلاثة في كتيب التشغيل الخاص بك، بجانب خطوات تدوير المفتاح.

ماذا يجب أن يسجل كل سطر سجل؟

الإجراء، النطاق، رمز الحالة، عمر التخزين المؤقت ورصيد الرصيد الذي عاد. هذه الحقول الخمسة تجيب على معظم أسئلة الدعم. لنفترض أن المستخدم يسأل لماذا يظهر عدادهم رقماً قديماً. عمر التخزين المؤقت وشهر الفهرخ يخبرانك ما إذا كانت المشكلة في التخزين المؤقت أو التسمية.

اترك مفتاح الـ API خارج كل سطر، بما في ذلك تتبعات الأخطاء. قم بتظليله في المسجل، لأن سراً واحداً مسرباً يمكن أن يفرغ الحساب بأكمله.

كيف تعرف أن العداد صحي كل أسبوع؟

راقب ثلاثة أرقام: حصة الحالات غير المتوفرة، اتجاه رصيد الرصيد ومعدل ضرب التخزين المؤقت. قفزة مفاجئة في الحالات غير المتوفرة تشير عادةً إلى مشكلة في المفتاح أو الرصيد. انخفاض بطيء في الرصيد يشير عادةً إلى مفتاح تخزين مؤقت محدد جداً.

لكل قراءة إصلاح مختلف، وهذا هو السبب في أن عنصر لوحة واحد لثلاثة نادراً ما يساعد أحداً. ضع القراءات الثلاثة في سطر واحد في ملاحظاتك الأسبوعية، مع القيمة الأخيرة والتغيير منذ الأسبوع السابق. الأرقام المقروءة بشكل منفرد تدعو للتخمين، بينما الاتجاه القصير يحافظ على المحادثة على نفس الحقائق.