إنشاء JSON-LD للأسئلة الشائعة
حوّل قائمة معتمدة من الأسئلة والأجوبة إلى ترميز FAQPage من schema.org من دون كتابة JSON متداخل يدويًا. تتحقق الأداة من كل زوج، وتحافظ على الترتيب المختار، وتعيد كائنًا منظمًا وكتلة script كاملة جاهزة للصفحة المعنية. وهي لا تبتكر ادعاءات ولا تعيد صياغة نصوصك، لذلك تظل البيانات المنظمة مطابقة لما يستطيع الزائر قراءته فعلًا.
شغّل الأداة مجانًا
جهّز الأسئلة والأجوبة الظاهرة أولًا
ابدأ بمحتوى الأسئلة الشائعة الذي يستطيع الزوار رؤيته فعلًا في الصفحة. يحتاج كل صف إلى سؤال كامل وجوابه المقابل، ولا يجوز أن يكون أي منهما فارغًا أو مكوّنًا من مسافات فقط. لا تؤلف الأداة هذا المحتوى ولا توسعه ولا تتحقق من صحته؛ فالبيانات المنظمة ينبغي أن تصف الصفحة، لا أن تنشئ نسخة خفية أخرى منها. راجع الادعاءات والسياسات والأسعار والتواريخ والشروط مع المسؤولين عنها قبل إنشاء الكتلة. استخدم صياغة واضحة ومحددة يمكن فهمها من دون قوائم تنقل أو عبارات دعائية. عالج الأسئلة المكررة في المحتوى الظاهر ورتب الأزواج كما تريد، لأن mainEntity سيحافظ على التسلسل نفسه بدقة. وعند تغيير أي جواب، حدّث المحتوى الظاهر وبياناته المنظمة معًا.
أنشئ ترميزًا آمنًا ومتوافقًا مع المعيار
تنشئ الأداة لكل زوج عنصر Question من schema.org وتضع السؤال في name، ثم تدرج Answer داخل acceptedAnswer وتضع الجواب في text. وتكوّن هذه السجلات مصفوفة mainEntity في كائن FAQPage. تتضمن النتيجة ذلك الكائن لعمليات الأتمتة وكتلة application/ld+json منسقة للإدراج المباشر في HTML. تُحذف المسافات المحيطة، بينما تبقى علامات الترقيم والمحتوى تحت سيطرتك. التسلسل حتمي؛ فالمدخل المتطابق ينتج دائمًا المخرج نفسه بلا شبكة أو عشوائية أو نموذج أو طابع زمني. كما تُرمّز بأمان المحارف التي قد تعطل عنصر script في HTML. يظل JSON قادرًا على استعادة النص الأصلي، لكن المحتوى الملصق لا يستطيع إغلاق عنصر script الخاص به قبل أوانه.
انشر النتيجة وافحصها وحافظ عليها
ضع كتلة script المعادة في HTML للصفحة التي تعرض الأسئلة والأجوبة نفسها. يمكن عادة وضع JSON-LD في head أو body، وقد يوفر نظام إدارة المحتوى حقلًا مخصصًا للبيانات المنظمة. لا توزع الكتلة على صفحات غير مرتبطة عبر قالب عام، لأنها تصف صفحة بعينها وينبغي أن ترافق محتواها. بعد النشر، افحص المستند المعروض للتأكد من وجود عنصر application/ld+json ومن أنه لم يظهر كنص عادي. ثم اختبر الرابط العام بأدوات التحقق الخاصة بمحركات البحث المعنية. صحة البنية لا تضمن مظهرًا معينًا في نتائج البحث، إذ يطبق كل مزود قواعده الخاصة. تعامل مع الكتلة كمحتوى يحتاج إلى صيانة؛ فإذا عُدّل جواب ظاهر أو حُذف أو تغير ترتيبه، فأعد إنشاء JSON-LD وانشر التغييرين معًا.
حالات الاستخدام
نشر أسئلة دعم شائعة
حوّل أسئلة مركز المساعدة المراجعة إلى ترميز FAQPage متسق للمقال العام نفسه.
أتمتة صفحات الهبوط
أنشئ JSON-LD حتميًا من سجلات الأسئلة الشائعة في نظام المحتوى عند كل عملية بناء.
استبدال المخطط المكتوب يدويًا
أزل التداخل وعلامات الاقتباس الهشة من سير التحرير من دون تغيير النص المعتمد.
الأسئلة الشائعة
ما الذي تعيده الأداة؟
تعيد كائن مخطط وكتلة script كاملة من نوع application/ld+json تتضمن بيانات FAQPage نفسها.
هل تكتب الأسئلة أو الأجوبة بدلًا منك؟
لا. تتحقق فقط من النص المقدم وتنظمه، ولا تنشئ الادعاءات ولا تعيد صياغتها أو تدققها.
ماذا يحدث إذا كان سؤال أو جواب فارغًا؟
يفشل الطلب بخطأ إدخال غير صالح يحدد موضع السؤال أو الجواب الفارغ.
هل يمكن لصق كتلة script بأمان في HTML؟
نعم. تُفلت المحارف الحساسة أثناء تسلسل JSON لمنع إغلاق عنصر script قبل أوانه.
هل يضمن FAQPage صالح نتيجة بحث محسّنة؟
لا. تنشئ الأداة بنية صالحة، لكن محركات البحث تقرر الأهلية والعرض وفق سياساتها.
ما تكلفة طلب API؟
تكلفة كل طلب API هي $0.002. ويمكن لأداة الويب تشغيل المنطق الحتمي نفسه محليًا.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/web/faq-schema-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pairs":[{"question":"How long does delivery take?","answer":"Standard delivery takes three to five business days."},{"question":"Can I change my order?","answer":"Yes. Contact support before the order is dispatched."}]}'const res = await fetch("https://api.kit.forhosting.com/web/faq-schema-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pairs": [
{
"question": "How long does delivery take?",
"answer": "Standard delivery takes three to five business days."
},
{
"question": "Can I change my order?",
"answer": "Yes. Contact support before the order is dispatched."
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/faq-schema-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pairs": [
{
"question": "How long does delivery take?",
"answer": "Standard delivery takes three to five business days."
},
{
"question": "Can I change my order?",
"answer": "Yes. Contact support before the order is dispatched."
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/faq-schema-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pairs":[{"question":"How long does delivery take?","answer":"Standard delivery takes three to five business days."},{"question":"Can I change my order?","answer":"Yes. Contact support before the order is dispatched."}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pairs":[{"question":"How long does delivery take?","answer":"Standard delivery takes three to five business days."},{"question":"Can I change my order?","answer":"Yes. Contact support before the order is dispatched."}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/faq-schema-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"pairs": [
{
"question": "How long does delivery take?",
"answer": "Standard delivery takes three to five business days."
},
{
"question": "Can I change my order?",
"answer": "Yes. Contact support before the order is dispatched."
}
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.faq_schema_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
timeout_sec | 30 |
max_crawl_pages | 25 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |