تقدم Roblox متجر للأسرار لكل لعبة. الأسرار هي معلومات حساسة مثل مفاتيح واجهة برمجة التطبيقات، وكلمات المرور، ورموز الوصول التي تستخدمها لمصادقة مع الخدمات الخارجية. على سبيل المثال، إذا كنت تريد الاتصال بخدمة تحليل أو موسيقى من جهة خارجية، فمن المحتمل أنك بحاجة إلى استخدام مفتاح واجهة برمجة التطبيقات للمصادقة معها.
يمكنك نسخ ولصق مفتاح واجهة برمجة التطبيقات في برنامج نصي أو إضافته إلى متجر البيانات، لكن هذه الأساليب تحمل مخاطر أمنية غير ضرورية. الحل الأفضل هو استخدام متجر الأسرار والوصول إلى المفتاح باستخدام مجموعة صغيرة من الطرق الآمنة.
إضافة أسرار
لعرض أو إنشاء أو تعديل الأسرار، يجب أن تكون مالك اللعبة أو مالك المجموعة. يمكنك أن تمتلك ما يصل إلى 500 سر لكل لعبة.
انتقل إلى لوحة التحكم للمبدعين.
اختر لعبتك، ثم اختر الأسرار ⟩ إنشاء سر.
أدخل اسمًا، السر، والنطاق المناسب.
- يعمل الاسم كمعرف فريد للسر، لذلك نوصي بشيء دلالي.
- يمكن أن تكون الأسرار بطول يصل إلى 1,024 حرفًا. ينبغي أن تأتي مفاتيح واجهة برمجة التطبيقات ورموز الوصول من موفر الخدمة، لكن إذا كان السر كلمة مرور، فمن المحتمل أنك أنشأتها بنفسك.
- يمكنك استخدام بناء جملة عام محدود للنطاق، مثل * لأي نطاق (غير موصى به) أو *.example.com لأي نطاق فرعي في example.com. النطاقات المحددة أفضل حتى، مثل my.example.com.
الأسرار المحلية
لأسباب أمنية، فإن متجر الأسرار لكل لعبة متاح فقط للخوادم المباشرة أو اختبار التعاون في البيئات. إذا حاولت الوصول إلى سر خلال اختبار اللعب المحلي، ستحصل على خطأ لا يمكن العثور على سر بالمفتاح المعطى. ستحصل على نفس الخطأ إذا حاولت الوصول إلى الأسرار من برنامج نصي خاص بالعميل.
لتحديد الأسرار للاختبار المحلي، اذهب إلى الاستوديو ثم انتقل إلى ملف ⟩ إعدادات التجربة ⟩ الأمان. يمكنك إنشاء أسرار جديدة وتعديل أو حذف الأسرار الموجودة في قسم الأسرار.


استخدام الأسرار
قبل استخدام الأسرار داخل لعبتك، يجب عليك تمكين السماح بطلبات HTTP في قسم الأمان من نافذة ملف ⟩ إعدادات التجربة في الاستوديو. ثم استدعِ HttpService:GetSecret() داخل برنامج نصي للخادم:
local HttpService = game:GetService("HttpService")local testSecret = HttpService:GetSecret("test_secret")
جزء من جذب استخدام متاجر الأسرار هو أنك لا تستطيع طباعة سر عن طريق الخطأ. بدلاً من السر نفسه، الكود التالي يخرج الاسم الذي قدمته عند إنشاء السر:
print(testSecret) --> سر(test_secret)
لا يمكنك معالجة السلسلة مباشرة. بدلاً من ذلك، يتيح لك نوع البيانات Secret إضافة بادئة ولاصقة للسر للمساعدة في تشكيل عنوان URL أو إدراج محتوى مثل Bearer:
local HttpService = game:GetService("HttpService")local testSecret = HttpService:GetSecret("test_secret")local prefix = "https://my.example.com/endpoint?apiKey="local suffix = "&user=username"local url = testSecret:AddPrefix(prefix)url = url:AddSuffix(suffix)print(url) --> https://my.example.com/endpoint?apiKey=سر(test_secret)&user=username
بعد أن يكون لديك عنوان URL مع السر المدرج، يمكنك إجراء طلبات HTTP قياسية باستخدام طرق مثل HttpService:RequestAsync(). بالطبع، يمكنك تجاهل هذه الطرق وإدراج السر مباشرة في رأس الطلب أيضًا.