اربط موقعك بأي خدمة خارجية — والمفتاح يضل بالخادم، مو بالكود

تقدر تربط الموقع اللي بنيته على ابني بأي خدمة خارجية تتكلّم HTTP: تويليو للرسائل، بوت تيليجرام، واتساب أعمال، Calendly، Airtable، Notion، خرائط جوجل، Slack، Discord، أو API عندك أنت. الوكيل يبحث بالوب ويقرأ توثيق المزوّد الحقيقي ويقدر يجرّب نقطة النهاية فعلياً قبل ما يكتب سطر كود ضدها. المفتاح تدخله ببطاقة إدخال آمنة داخل المحادثة، والقيمة تروح للخادم مباشرة — ما تمر بالنموذج ولا بنص المحادثة. بعدها الكود ينادي المفتاح باسمه فقط، وقيمته ما تنزل للمتصفح ولا تطلع بالسجلات.

نُشر في:

ابدأ مجاناً
+عيادة النورخدماتناالأطباءتواصلاحجز موعد
✓ عيادة معتمدة
ابتسامتك الصحية تبدأ من هون
تقويم · تبييض · حشوات تجميلية · زراعة
المواعيد المتاحة — الأحد ١٣ تموزتغيير اليوم
٩:٠٠١١:٣٠٤:٣٠تأكيد الحجز
د. لينا خوريتقويم الأسناند. سامر عيدزراعة وتجميل
نموذج موقع تبنيه بابني بالعربي

وين يشتغل الربط — داخل دالة سحابية، مو بالمتصفح

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

الدالة ملف اسمه functions/<الاسم>.js فيه دالة handler، وتناديها من صفحتك بسطر واحد: cloud.fn.call مع اسم الدالة والبيانات. الزائر يشوف النتيجة بس، وما يشوف لا الرابط الخارجي ولا المفتاح ولا شكل الطلب.

داخل الدالة عندك أدوات جاهزة: ebnii.fetch للنداء الخارجي، وebnii.secrets.get لجلب المفتاح باسمه، وebnii.db للكتابة والقراءة بقاعدة الموقع بصلاحية صاحب الموقع، وebnii.email.send للإرسال لأي عنوان، وebnii.crypto للتوقيع والتحقق (HMAC، تجزئة، مقارنة ثابتة الزمن، JWT بـ HS256 أو RS256).

وكمان عندك أدوات تنسيق وتحويل بلا مكتبات: ebnii.format للعملة والتاريخ والأرقام، وebnii.csv للتحليل والتوليد، وebnii.base64 وebnii.url وebnii.basicAuth. هذي مصمّمة كذا لأن الصندوق ما فيه npm — تفاصيلها بقسم الحدود تحت.

من طلبك بالمحادثة لحد أول نداء ناجح

الخطوة الثانية هي اللي تفرق ابني عن مولّد كود عادي: الوكيل ما يخمّن شكل الـ API، يقرأه ويجرّبه.

تطلب الربط بالمحادثة
اربط الموقع بتويليو وابعت SMS مع كل حجز
الوكيل يقرأ ويجرّب
توثيق المزوّد الحقيقي + نداء تجريبي للنقطة
تدخل المفتاح ببطاقة آمنة
القيمة تروح للخادم، ما تمر بالنموذج
المنصّة تفحص المفتاح
نداء واحد رخيص عند المزوّد وقت الحفظ
الدالة تشتغل بموقعك
من زر، أو ويب هوك، أو مهمة مجدولة

الخطوات الخمسة بالتفصيل

١

اطلب الربط بجملة واضحة

قول شو بدك يصير مو شو الـ API. مثال: لما يوصل حجز جديد، ابعت رسالة SMS للزبون فيها الموعد. الوكيل هو اللي يحدد أي نقطة نهاية يستخدم.

٢

الوكيل يقرأ التوثيق ويجرّب النقطة

يبحث بالوب، يفتح توثيق المزوّد الرسمي، ويقدر يرسل نداء تجريبي لنقطة النهاية الحقيقية قبل ما يكتب الكود النهائي. النتيجة كود مبني على رد فعلي، مو على تخمين من الذاكرة.

٣

تدخل المفتاح ببطاقة إدخال آمنة

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

٤

المنصّة تتأكد من المفتاح مع المزوّد

وقت الحفظ يصير نداء واحد رخيص عند الخدمة. إذا رفضته صراحة بيبين وسم الخدمة رفضته. إذا الجواب غامض بيبين محفوظ بدون ادعاء فحص — ما نسميه ناجح إلا لما يكون ناجح فعلاً.

٥

تنادي الدالة من موقعك

من زر، من نموذج، من ويب هوك يجيك من برّا، أو من مهمة مجدولة تشتغل بالليل. نفس الدالة تنفع للأربعة، وما تحتاج تعيد كتابتها لكل مسار.

خدمات فيها دليل جاهز بالعربي

هذي خدمات مكتوب لها داخل ابني خطوات استخراج المفتاح بالعربي. وأي خدمة ثانية تنربط بنفس الطريقة: سرّ باسم تختاره أنت + ebnii.fetch.

الخدمةشو تسويها من موقعكملاحظة
تويليورسائل SMS — تأكيد حجز، كود، تنبيهتحتاج رقم مُرسِل من تويليو نفسه
بوت تيليجرامإشعار فوري لك أو لفريقك مع كل طلب جديدأسرع طريقة تعرف بطلب من غير إيميل
واتساب أعمال (Cloud API)رسائل عبر الواجهة الرسمية لواتسابتحتاج حساب أعمال معتمد عند ميتا
Calendlyسحب المواعيد المتاحة أو إنشاء حجزمفيد لو جدولك أصلاً هناك
Airtable و Notionمزامنة الطلبات مع قاعدة يشتغل عليها فريقكالاتجاهين: كتابة وقراءة
خرائط جوجل ويوتيوبعناوين الفروع، الخرائط، فيديوهاتكمفتاح الخرائط للواجهة مو سرّ ويعيش بالكود
Slack و Discordإشعارات القناة عند كل حدث بموقعكبديل بسيط لبريد التنبيهات
Mailchimpإضافة المشترك لقائمتك البريديةالإرسال التسويقي عندهم، والمعاملاتي عند ابني
OpenAI بمفتاحك الخاصمهام نصية خاصة تختارها أنتتحليل الصور ممنوع خارجياً — يتم عبر cloud.ai.generate

سرّ محفوظ بالخادم مقابل مفتاح مكتوب بالكود

البندابني — سرّ بالخادممفتاح داخل كود الصفحة
من يقدر يشوف القيمةما ترجع للمتصفح أبداً — الواجهة ترجّع أسماء المفاتيح وتواريخها فقطأي زائر يفتح مصدر الصفحة يقراه
هل يوصل للذكاء الاصطناعيلا — القيمة تُحجب من سياق النموذج ومن نص المحادثةيدخل بسياق النموذج مع باقي الكود
بالسجلات وتقارير الأخطاءمحجوب — يظهر سرّ محجوب بدل القيمة، وحتى صيغته المهرّبة داخل JSONيطلع بالسجل وبأي تقرير خطأ
الوصول من مشروع ثانيلا — الصندوق يستلم أسرار هذا المشروع فقطحسب وين انتسخ الكود
كشف القيمة لاحقاًمستحيل — ولا حتى آخر ٤ خانات؛ التغيير يصير بالكتابة فوقهمكشوفة دائماً لأي حدا يفتح الملف
التخزينجدول محمي بـ RLS بدون سياسات — ما يوصله إلا مفتاح الخدمة على الخادمداخل ملفات موقعك العامة

حدود الربط — اقرأها قبل ما تعد زبونك

الدوال تشتغل داخل صندوق QuickJS معزول. هذا يعطيك أماناً عالياً، ويقصّ عليك أشياء لازم تعرفها من البداية.

ما في npm ولا import

ما في Node ولا fs ولا process ولا DOM ولا setTimeout ولا Buffer ولا Intl ولا URL. تكتب HTTP نظيف مع الأدوات المدمجة. الدوال اللي تحوّل التاريخ للغة المحلية موجودة بس ترجّع توقيت خادم بصيغة أمريكية — استعمل ebnii.format.date بدلها.

ثماني نداءات خارجية بالتشغيلة

وحد أقصى ٢٤ برفع خاص لصاحب الموقع. وخمس رسائل إيميل بالتشغيلة الواحدة بحد أقصى ٢٠. تصميمك لازم يجمّع النداءات مو يوزّعها على عشرات الطلبات.

عشر ثوانٍ للزائر، ٢٥ لصاحب الموقع

بعدها الدالة توقف برسالة انتهت مهلة التنفيذ. الشغل الطويل ينرحّل لمهمة مؤجّلة بـ ebnii.jobs.enqueue بدل ما تخاطر.

أحجام مقفولة

كود الدالة حتى ١٠٠ كيلوبايت، الحمولة الداخلة حتى ١٠٠ كيلوبايت، الرد الخارجي حتى ٢ ميغابايت ويُقطع وهو واصل. وصف قاعدة البيانات الواحد حتى ٣٢ كيلوبايت — يعني الملفات تتخزّن بالتخزين ورابطها بالقاعدة.

الشبكات الداخلية محجوبة

loopback و RFC-1918 و169.254.169.254 و.local و.internal وصيغ العناوين البديلة كلها مرفوضة، وكل قفزة DNS بسلسلة التحويل تُفحص. حماية من هجوم يخلي موقعك ينادي شبكة داخلية.

مزوّدات الإيميل الخارجية مرفوضة

Resend وSendGrid وMailgun وPostmark وSES وأي مضيف يبدأ بـ smtp محجوبين برسالة صريحة. الإيميل مُدار بالمنصّة: ٥٠٠ رسالة مجانية لكل مشروع بالشهر عبر ebnii.email.send.

بوابات الدفع ما تنربط بمفتاح

ما تُطلب منك مفاتيح بوابات دفع أبداً — تنضبط من لوحة طرق الدفع داخل المشروع. المفاتيح العامة زي مفتاح Stripe المنشور ومفتاح خرائط جوجل للواجهة مو أسرار وتعيش بالكود عادي.

ما في تحويل ملفات ولا قراءة قوائم ضخمة

لا PDF إلى Word ولا ضغط فيديو. وداخل الدالة، قراءة قاعدة الموقع تقف عند ٢٠٠ صف بلا إزاحة — التقارير الكبيرة تنبني على تجميعات تكتبها مع كل عملية، مو بمسح الجدول كامل.

أسئلة شائعة

هل مفاتيحي مشفّرة؟

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

أقدر أشوف المفتاح بعد ما أحفظه؟

لا، ولا حتى آخر ٤ خانات. الواجهة ترجّع أسماء المفاتيح وتواريخ تحديثها وحالة فحصها فقط. إذا نسيت القيمة، تجيب وحدة جديدة من المزوّد وتحفظها بنفس الاسم فوق القديمة.

كيف يعرف الوكيل شكل الـ API اللي بدي أربطه؟

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

أقدر أستخدم مفتاح OpenAI الخاص فيّ؟

نعم لمهام نصية خاصة تختارها أنت، وفيه دليل جاهز لحفظ المفتاح. لكن تحليل الصور ممنوع عبر مزوّد خارجي — يتم عبر cloud.ai.generate اللي يشتغل على مفتاح المنصّة ويصرف من محفظة الذكاء.

شو بيصير لو حذفت مفتاح؟

كل دالة تستخدم هالمفتاح راح تتعطّل، والمنصّة تنبّهك بهذا قبل الحذف. إذا بدك تدوّر مفتاح بدل ما تحذفه، احفظ القيمة الجديدة بنفس الاسم — تكتب فوق القديمة والدوال تكمل شغل بلا تعديل كود.

هل الخدمة الخارجية تشوف بيانات زوّاري؟

بس اللي ترسله دالتك لها بشكل صريح. أنت تحدد شو يطلع بجسم الطلب. وابني يشيل الأنماط الحسّاسة من السجلات وتقارير الأخطاء — الإيميلات والأرقام تظهر كـ إيميل محجوب ورقم محجوب — فالتشخيص ما يتحوّل لتسريب.

اقرأ أيضاً

كيف تربط API خارجي بموقعك خطوة بخطوةدوال سحابية داخل موقعكويب هوك: أنظمة خارجية تنادي موقعكربط نظام CRM بموقعكربط شركة شحن بموقعك

اربط أول خدمة خارجية بموقعك اليوم

اكتب بالمحادثة اسم الخدمة وشو بدك يصير — الوكيل يقرأ توثيقها، يطلب منك المفتاح ببطاقة آمنة، ويكتب الدالة ويجرّبها.

ابدأ مجاناً