فحص حد أحرف المنشور حسب منصة التواصل الاجتماعي
تقيس هذه الأداة المنشور الكامل وفق الحد القياسي في X أو Instagram أو Facebook أو LinkedIn أو Threads أو Bluesky.
شغّل الأداة مجانًا
ألصقوا النص النهائي واختاروا وجهته لتحصلوا على عدد الأحرف والحد المطبق والمساحة المتبقية ونتيجة واضحة تبين مدى صلاحيته. يشمل العد المسافات وعلامات الترقيم وفواصل الأسطر والرموز التعبيرية، ولذلك تفيد النتيجة في المراجعة التحريرية الأخيرة قبل إرسال المنشور إلى الاعتماد أو جدولته للنشر.
تحققوا من النسخة النهائية لا من مسودة سابقة
تظهر أهمية حدود الأحرف عند النشر، لذا أدخلوا النص الكامل الذي سيُنشر فعلياً. ينبغي أن يتضمن العنوان والمتن والوسوم والإشارات والروابط وعلامات الترقيم والمسافات المقصودة وفواصل الأسطر. تقيس الأداة نقاط ترميز Unicode، وبذلك يُعامل الرمز التعبيري المعتاد بوصفه حرفاً واحداً بدلاً من وحدتي ترميز داخليتين في JavaScript. ومع ذلك، تدخل كل مسافة ظاهرة وكل فاصلة سطر في المجموع. بعد اختيار المنصة، تعرض النتيجة اسمها بصيغته الموحدة وعدد الأحرف المقاس والحد المطبق وعدد الأحرف المتبقية وما إذا كان النص ضمن الحد. تعني القيمة المتبقية صفراً أن المنشور استنفد المساحة المتاحة لكنه ما زال مقبولاً. أما القيمة السالبة فتعني تجاوز الحد، وتبين قيمتها المطلقة عدد الأحرف الواجب حذفها بدقة. هذه النتيجة المباشرة أنفع من عداد عام، لأن النص نفسه قد يناسب شبكة ويتجاوز حد شبكة أخرى. أعيدوا الفحص بعد أي تعديل أخير، ولا سيما عند إضافة وسم لحملة أو إشارة إلى حساب أو إفصاح إلزامي أو دعوة إلى اتخاذ إجراء.
فسروا العدد وفق قاعدة ثابتة
تطبق الأداة قاعدة عد مستقرة على جميع الوجهات المدعومة. فهي تحسب الحروف والأرقام والرموز وعلامات الترقيم والمسافات وفواصل الأسطر باعتبارها أجزاء من المنشور. كما تحسب Unicode بحسب نقطة الترميز، فتتجنب المفاجأة الشائعة التي تجعل كثيراً من الرموز التعبيرية تبدو وكأنها تشغل موضعين عند استخدام حساب بسيط لطول السلسلة في JavaScript. يحتوي الحقل character_limit على الحد القياسي المحفوظ للمنصة المختارة، بينما يصف character_count النص المرسل وحده. وينتج عن طرح القيمتين الحقل remaining_characters؛ فالقيمة الموجبة تعني وجود مساحة، والصفر يعني التطابق التام، والقيمة السالبة تبين مقدار التجاوز. يتيح المؤشر within_limit للأنظمة الآلية اتخاذ قرار منطقي من دون حساب إضافي. تُوحد أسماء المنصات بحروف صغيرة، لكن الاسم غير المدعوم يؤدي إلى خطأ في الإدخال بدلاً من اختيار بديل خفي. يحمي ذلك أنظمة جدولة النشر من اعتماد نص وفق قاعدة تخص وجهة أخرى. وقد تتغير سياسات المنصات، لذا تعاملوا مع الأداة بوصفها فحصاً دقيقاً للحدود المنشورة فيها، وأعيدوا مراجعة الحملات المهمة عند تحديث متطلبات الوجهة.
استخدموا النتيجة في مسارات التحرير والنشر
يفيد الفحص اليدوي قبل نشر مادة منفردة، بينما صُممت API لعمليات المحتوى المتكررة. يستطيع المحرر فحص المسودة قبل طلب اعتمادها، ويمكن لمسؤول الحملة اختبار نسخ مكيّفة من الإعلان نفسه لوجهات متعددة ومعرفة النسخة التي تحتاج إلى الاختصار. كما يستطيع تكامل النشر رفض العنصر الذي يتجاوز الحد قبل وصوله إلى أداة الجدولة، وإرجاع العدد المتبقي السالب لتوضيح مقدار التعديل المطلوب. ولأن الخوارزمية حتمية ولا تستخدم الشبكة، فإن النص والمنصة نفسيهما ينتجان النتيجة نفسها دائماً. لذلك تصلح المخرجات لقواعد التحقق وبيانات الاختبار وجداول البيانات وروابط أنظمة إدارة المحتوى وخطوات الفحص المسبق في مسار النشر الاجتماعي. تبلغ تكلفة الطلب عبر API مقدار $0.002، وتمثل الوحدة منشوراً واحداً مفحوصاً. اجعلوا كل طلب مخصصاً لنص نهائي واحد ووجهة واحدة، ففحص النسخ كل على حدة يحافظ على سجل تدقيق واضح. إذا كان المنشور طويلاً، فاختصروا أولاً التكرار قليل القيمة، ثم أعيدوا فحص النسخة النهائية كاملة كي يشمل القرار ما تغير من ترقيم ووسوم ومسافات.
حالات الاستخدام
فحص منشور مجدول قبل إرساله
أوقفوا المسودة التي تتجاوز الحد قبل دخولها قائمة النشر، وبينوا للمحرر العدد الدقيق للأحرف الواجب حذفها.
تكييف حملة لعدة شبكات
افحصوا نسخة كل منصة بصورة مستقلة كي تحصل الوجهات الأقصر على نص موجز من دون اختصار النسخ الأطول بلا حاجة.
إضافة قاعدة تحقق إلى نظام إدارة المحتوى
استخدموا النتيجة المنطقية والعدد المتبقي لتقديم ملاحظة فورية وحتمية داخل مسار العمل التحريري.
الأسئلة الشائعة
ما المنصات التي تتعرف إليها الأداة؟
الأسماء المدعومة هي x وinstagram وfacebook وlinkedin وthreads وbluesky. يؤدي أي اسم آخر إلى خطأ يفيد بأن الإدخال غير صالح.
هل تدخل المسافات وفواصل الأسطر في العدد؟
نعم. تدخل المسافات وعلامات الجدولة والترقيم وفواصل الأسطر ضمن المنشور المرسل وتضاف إلى عدد أحرفه.
كيف تُحسب الرموز التعبيرية؟
تحسب الخوارزمية نقاط ترميز Unicode، لذا يُعد الرمز المعتاد حرفاً واحداً لا وحدتي UTF-16. وقد يضم الرمز المركب عدة نقاط فيُحسب بأكثر من حرف.
ماذا تعني القيمة المتبقية السالبة؟
تعني أن المنشور تجاوز حد المنصة المختارة. فمثلاً، تشير قيمة سالب اثني عشر إلى ضرورة حذف اثني عشر حرفاً.
ما تكلفة الفحص عبر API؟
تبلغ تكلفة كل طلب API مقدار $0.002، ويفحص الطلب منشوراً واحداً وفق منصة واحدة مختارة.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/seo/social-post-length-limit-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"A concise product update with one clear takeaway.","platform":"x"}'const res = await fetch("https://api.kit.forhosting.com/seo/social-post-length-limit-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "A concise product update with one clear takeaway.",
"platform": "x"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/social-post-length-limit-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "A concise product update with one clear takeaway.",
"platform": "x"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/social-post-length-limit-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"A concise product update with one clear takeaway.","platform":"x"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"A concise product update with one clear takeaway.","platform":"x"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/social-post-length-limit-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "A concise product update with one clear takeaway.",
"platform": "x"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.social_post_length_limit_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_chars | 100000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |