توفّر أداة "بحث Google" واجهة بحث قابلة للتخصيص لتطبيقات الويب. لا يتطلب التطبيق المصغَّر سوى مقدار صغير من HTML وJavaScript تنفيذ وتفعيل ميزات بحث شائعة، مثل الواجهات وتقسيم النتائج على عدّة صفحات. إِنْتَ أيضًا تخصيص أجزاء من الواجهة باستخدام CSS وJavaScript.
إذا كنت بحاجة إلى مرونة أكبر مما تقدّمه الأداة، يمكنك استخدام واجهة برمجة تطبيقات طلبات البحث. للحصول على معلومات حول إنشاء واجهة بحث باستخدام Query API، راجِع إنشاء واجهة بحث باستخدام Query API.
إنشاء واجهة بحث
يتطلب إنشاء واجهة البحث عدة خطوات:
- إعداد تطبيق بحث
- إنشاء معرِّف عميل للتطبيق
- إضافة ترميز HTML لمربّع البحث والنتائج
- تحميل التطبيق المصغّر على الصفحة
- إعداد التطبيق المصغّر
إعداد تطبيق بحث
يجب أن تحتوي كل واجهة بحث على تطبيق بحث محدّد في وحدة تحكم المشرف. يوفر تطبيق البحث المزيد من للمعلومات لطلب البحث، مثل مصادر البيانات والواجهات وإعدادات جودة البحث
لإنشاء تطبيق بحث، راجع إنشاء تجربة بحث مخصّص
إنشاء معرِّف عميل للتطبيق
بالإضافة إلى الخطوات الواردة في ضبط الوصول إلى واجهة برمجة تطبيقات Google Cloud Search يجب أيضًا إنشاء معرِّف عميل لتطبيق الويب.
عند ضبط المشروع:
- اختيار نوع برنامج متصفّح الويب
- إدخال معرّف الموارد المنتظم (URI) المصدر لتطبيقك.
- ملاحظة معرّف العميل الذي تم إنشاؤه. ستحتاج إلى معرّف العميل لإكمال الخطوات التالية. لا يكون سر العميل مطلوبًا التطبيق المصغّر.
لمزيد من المعلومات، يُرجى الاطّلاع على OAuth 2.0 لتطبيق الويب من جهة العميل.
إضافة ترميز HTML
تتطلب الأداة مقدارًا صغيرًا من HTML لتعمل. إِنْتَ يجب تقديم ما يلي:
- تمثّل هذه السمة عنصر
input
لمربّع البحث. - عنصر لتثبيت نافذة الاقتراح المنبثقة عليه.
- تمثّل هذه السمة عنصرًا يحتوي على نتائج البحث.
- (اختياري) قدّم عنصرًا لتضمين عناصر تحكم الواجهات.
يعرض مقتطف HTML التالي رمز HTML لأداة البحث، حيث
يتم تحديد العناصر المطلوب ربطها من خلال السمة id
الخاصة بها:
تحميل التطبيق المصغّر
يتم تحميل التطبيق المصغّر ديناميكيًا من خلال نص برمجي لأداة التحميل. لتضمين
برنامج التحميل، استخدِم العلامة <script>
على النحو الموضّح:
يجب توفير استدعاء onload
في علامة النص البرمجي. تُسمى الدالة
عندما تكون أداة التحميل جاهزة مواصلة تحميل التطبيق المصغّر عندما تكون أداة التحميل جاهزة
من خلال طلب gapi.load()
لتحميل برنامج واجهة برمجة التطبيقات ووحدات "تسجيل الدخول بحساب Google" وCloud Search.
يتم استدعاء الدالة initializeApp()
بعد تجزئة جميع الوحدات
التحميل.
إعداد التطبيق المصغّر
أولاً، قم بتهيئة مكتبة العميل عن طريق استدعاء
gapi.client.init()
أو gapi.auth2.init()
باستخدام معرّف العميل الذي أنشأته
ونطاق https://www.googleapis.com/auth/cloud_search.query
. بعد ذلك، استخدم
gapi.cloudsearch.widget.resultscontainer.Builder
gapi.cloudsearch.widget.searchbox.Builder
صفوف لضبط التطبيق المصغّر
وربطها بعناصر HTML الخاصة بك.
يوضّح المثال التالي كيفية إعداد الأداة:
يشير المثال أعلاه إلى متغيرين للتهيئة على النحو التالي:
تخصيص تجربة تسجيل الدخول
تطلب الأداة تلقائيًا من المستخدمين تسجيل الدخول وتفويض التطبيق في الوقت الذي يبدأ فيه كتابة استعلام. يمكنك استخدام تسجيل الدخول باستخدام حساب Google للمواقع الإلكترونية لتقديم تجربة تسجيل دخول أكثر تخصيصًا للمستخدمين.
تفويض المستخدمين مباشرةً
استخدام ميزة تسجيل الدخول باستخدام حساب Google لتتبُّع حالة تسجيل الدخول
للمستخدمين الذين يقومون بتسجيل الدخول أو الخروج أو تسجيل الخروج حسب الحاجة. على سبيل المثال، ما يلي
المثال يتبع isSignedIn
لمراقبة تغييرات تسجيل الدخول
تستخدم السمة GoogleAuth.signIn()
لبدء تسجيل الدخول من زر
النقر:
لمزيد من التفاصيل، يُرجى الاطّلاع على ميزة تسجيل الدخول باستخدام حساب Google.
المستخدمون الذين يسجّلون الدخول تلقائيًا
يمكنك تبسيط تجربة تسجيل الدخول بشكل أكبر من خلال التفويض مسبقًا التطبيق نيابةً عن المستخدمين في مؤسستك. هذا الأسلوب مفيدة أيضًا في حال استخدام الخادم الوكيل لخدمة Cloud Identity لحماية التطبيق.
لمزيد من المعلومات، يُرجى الاطّلاع على استخدام "تسجيل الدخول بحساب Google" مع تطبيقات تكنولوجيا المعلومات.
تخصيص الواجهة
يمكنك تغيير مظهر واجهة البحث من خلال تركيبة من التقنيات:
- إلغاء الأنماط باستخدام CSS
- تزيين العناصر باستخدام محوّل
- إنشاء عناصر مخصّصة باستخدام محوِّل
إلغاء الأنماط باستخدام CSS
تتوفّر أداة "بحث Google" مع CSS خاصة بها لاقتراح الأنماط وعناصر النتائج. إلى جانب عناصر التحكّم بتقسيم النتائج على عدّة صفحات. يمكنك إعادة تصميم هذه العناصر حسب الحاجة.
أثناء التحميل، تُحمِّل أداة "بحث Google" ورقة الأنماط التلقائية ديناميكيًا. ويحدث ذلك بعد تحميل أوراق أنماط التطبيق، ما يزيد من أولوية القواعد. لضمان أن تكون للأنماط الخاصة بك الأولوية على الأنماط التلقائية، استخدام محددات الأصل لزيادة خصوصية القواعد الافتراضية.
على سبيل المثال، ليس للقاعدة التالية أي تأثير إذا تم تحميلها في ملف
العلامة link
أو style
في المستند.
.cloudsearch_suggestion_container {
font-size: 14px;
}
بدلاً من ذلك، عليك تأهيل القاعدة باستخدام رقم التعريف أو فئة حاوية المؤسسة الأصلية. كما هو موضح في الصفحة.
#suggestions_anchor .cloudsearch_suggestion_container {
font-size: 14px;
}
للحصول على قائمة بفئات الدعم وأمثلة على محتوى HTML الذي تنشئه الأداة، يمكنك الاطّلاع على مرجع فئات CSS المتوافقة.
تزيين العناصر باستخدام محوّل
لتزيين عنصر قبل عرضه، قم بإنشاء وتسجيل
محوّل يعمل على تنفيذ إحدى طرق التزيين مثل
decorateSuggestionElement
أو decorateSearchResultElement.
على سبيل المثال، تضيف المحوّلات التالية فئة مخصصة إلى الاقتراح .
لتسجيل المحوّل عند إعداد الأداة، استخدِم setAdapter()
لفئة Builder
المعنية:
يمكن للمصممين تعديل سمات عنصر الحاوية بالإضافة إلى أي التابعة. يمكن إضافة أو إزالة العناصر الثانوية أثناء عملية الزينة. ومع ذلك، في حالة إجراء تغييرات هيكلية على العناصر، ففكر في إنشاء العناصر مباشرة بدلاً من التزيين.
إنشاء عناصر مخصّصة باستخدام محوِّل
لإنشاء عنصر مخصص لاقتراح أو حاوية واجهة أو نتيجة بحث،
إنشاء وتسجيل محول لتنفيذ
createSuggestionElement
,
createFacetResultElement
،
أو createSearchResultElement
بشكل متكرر.
توضح المحوّلات التالية إنشاء اقتراح مخصص ونتائج بحث
عناصر باستخدام علامات HTML <template>
.
لتسجيل المحوِّل عند إعداد التطبيق المصغّر، استخدِم setAdapter()
لفئة Builder
المعنية:
إنشاء عناصر واجهة مخصّصة باستخدام createFacetResultElement
لقيود متعددة:
- يجب إرفاق فئة CSS
cloudsearch_facet_bucket_clickable
بالسمة عنصر ينقر عليه المستخدمون لتبديل الحزمة. - يجب التفاف كل مجموعة في عنصر رئيسي باستخدام CSS.
الصف
cloudsearch_facet_bucket_container
. - لا يمكنك عرض الحِزم بترتيب مختلف عن الذي تظهر فيه في الاستجابة.
على سبيل المثال، يعرض المقتطف التالي الواجهات باستخدام الروابط بدلاً من ذلك. من مربعات الاختيار.
تخصيص سلوك البحث
تمثل إعدادات تطبيق البحث الإعداد التلقائي التهيئة لواجهة بحث وتكون ثابتة. تنفيذ الإعلانات الديناميكية عوامل التصفية أو الواجهات، مثل السماح للمستخدمين بالتبديل بين مصادر البيانات، يمكنك إلغاء إعدادات تطبيق البحث من خلال اعتراض طلب البحث باستخدام محوّل.
وصِّل محوّل الطاقة
interceptSearchRequest
لتعديل الطلبات المقدّمة إلى
واجهة برمجة تطبيقات البحث
قبل تنفيذه.
على سبيل المثال، يعترض المحوّل التالي طلبات تقييد طلبات البحث إلى مصدر من اختيار المستخدم:
لتسجيل المحول عند تهيئة الأداة، استخدم
setAdapter()
عند إنشاء ResultsContainer
يتم استخدام HTML التالي لعرض مربع تحديد للتصفية حسب المصادر:
يستمع الرمز التالي إلى التغيير، ويحدد التحديد، ويعيد تنفيذ الاستعلام إذا لزم الأمر.
يمكنك أيضًا اعتراض استجابة البحث من خلال تنفيذ
interceptSearchResponse
في المحوّل.
تثبيت إصدار واجهة برمجة التطبيقات
تستخدم الأداة بشكل تلقائي أحدث إصدار ثابت من واجهة برمجة التطبيقات. للقفل في
إصدار معيّن، اضبط معلَمة الإعداد cloudsearch.config/apiVersion
إلى الإصدار المفضل قبل إعداد الأداة.
سيتم ضبط الإصدار 1.0 تلقائيًا على إصدار واجهة برمجة التطبيقات في حال ترك السياسة بدون ضبط أو ضبطها على قيمة غير صالحة.
تثبيت إصدار التطبيق المصغّر
لتجنب التغييرات غير المتوقعة في واجهات البحث، اضبط
cloudsearch.config/clientVersion
معلمة الضبط كما هو موضح:
gapi.config.update('cloudsearch.config/clientVersion', 1.1);
سيتم ضبط إصدار الأداة تلقائيًا على 1.0 في حال ترك السياسة بدون ضبط أو ضبطها على قيمة غير صالحة.
تأمين واجهة البحث
تتضمن نتائج البحث معلومات حساسة للغاية. اتّباع أفضل الممارسات لتأمين تطبيقات الويب، خاصةً ضد هجمات clickjacking.
لمزيد من المعلومات، يُرجى الاطّلاع على مشروع دليل OWASP.
تفعيل تصحيح الأخطاء
استخدام interceptSearchRequest
لتفعيل تصحيح الأخطاء في تطبيق "بحث Google" المصغّر على سبيل المثال:
if (!request.requestOptions) {
// Make sure requestOptions is populated
request.requestOptions = {};
}
// Enable debugging
request.requestOptions.debugOptions = {enableDebugging: true}
return request;