
الإعداد السريع
قم بتثبيت الحزمة باستخدام npm، وقم بإنشاء جهاز توجيه، وستكون جاهزًا لتلقي المقالات في دقائق. يعمل مع Express وأي إطار عمل Node.js.

قم بتوصيل Monok بنظام إدارة المحتوى (CMS) المخصص لديك، أو تطبيق Express، أو أي واجهة خلفية لـ Node.js. احصل على المقالات كمسودات عبر واجهة برمجة التطبيقات البسيطة الخاصة بنا.
تم تسليم المحتوى إلى


























تسهل الحزمة @monok/server توصيل الواجهة الخلفية بـ Monok. قم بالتثبيت عبر npm، وقم بتكوين نقطة النهاية الخاصة بك، وابدأ في تلقي المحتوى تلقائيًا.

قم بتثبيت الحزمة باستخدام npm، وقم بإنشاء جهاز توجيه، وستكون جاهزًا لتلقي المقالات في دقائق. يعمل مع Express وأي إطار عمل Node.js.
إليك كل ما تحتاجه لدمج Monok مع تطبيق Express الخاص بك:
Install the package
1npm install @monok/server expressCreate the router
1import express from "express";2import { createMonokRouter } from "@monok/server";3 4const app = express();5 6app.use(7 "/monok",8 createMonokRouter({9 apiKey: process.env.MONOK_API_KEY!,10 onArticle: async (article, { saveThumbImage, action }) => {11 const imagePath = await saveThumbImage();12 13 if (action === "publish") {14 // publish immediately in your CMS15 } else {16 // save as draft (default)17 }18 }19 })20);21 22app.listen(3000);Add your endpoint URL to Monok settings: https://yoursite.com/monok

تقوم الحزمة @monok/server تلقائيًا بإعداد نقاط النهاية هذه للتواصل مع Monok
/monok/push?action=draft|publishيرسل Monok بيانات المقالة الجديدة إلى نقطة النهاية هذه. وتُعالج المقالة عبر دالة رد الاتصال onArticle.
الرمز المميز: <your-api-key>action- اضبط على draft أو publish بناءً على اختيار المستخدم في Monok GUI/monok/info?apikey=<your-api-key>يقوم Monok بجلب معلومات موقعك للتعرف على علامتك التجارية والفئات والعلامات والمؤلفين. وهذا يساعد على تقديم توصيات محتوى أفضل.
apikey— مفتاح Monok API الخاص بك للمصادقةgetSiteInfo تكوين رد الاتصالgetSiteInfoفهم حمولة JSON التي ستتلقاها من Monok
يتم إرسال المقالات ككائنات JSON بالبنية التالية
| Field | Type | Description |
|---|---|---|
title | String | عنوان المقال |
shortTitle | String | عنوان أقصر للعلامات الوصفية، يملأ Yoast/RankMath مسبقًا |
description | String | الوصف التعريفي لتحسين محركات البحث، والتعبئة المسبقة لـ Yoast/RankMath |
content | String | المقالة بتنسيق HTML جاهز لـ WordPress |
text | String | المقالة بصيغة Markdown مع عناصر JSON |
slug | String | الارتباط الثابت لعنوان URL الذي تم إنشاؤه من العنوان، يملأ مسبقًا Yoast/RankMath |
id | String | معرف فريد، يمكن الوصول إليه على monok.com/puff/ID |
thumbImageData | String | صورة مميزة بتنسيق PNG بترميز base64 |
thumbImageDescription | String | نص بديل للصورة المميزة |
language | String | اللغة/اللغة المستهدفة (على سبيل المثال، "fr"، "fr-ca") |
type | String | "مدونة" أو "أخبار" |
keywords | [String] | مصفوفة من كلمات تحسين محركات البحث |
tags | [String] | مجموعة من علامات المقالة |
vfImage | Object | البيانات الوصفية التفصيلية المميزة للصورة |
sections | String | اسم الفئة للمقالة |
يحتوي الحقل text على Markdown مع عناصر JSON مضمّنة للوسائط الغنية مثل التغريدات ومنشورات Instagram ومقاطع فيديو YouTube والاقتباسات.
JSON Widget in Article Text
1{2 "data": [3 {4 "name": "Phil Spencer",5 "text": "Had good calls this week with leaders at Sony..."6 }7 ],8 "id": "1484273335139651585",9 "type": "twitter",10 "url": "https://twitter.com/XboxP3/status/1484273335139651585",11 "username": "XboxP3"12}قسّم النص إلى أسطر جديدة (\n) وتحقق مما إذا كان كل سطر Markdown أو JSON. حوّل Markdown إلى HTML باستخدام مكتبة مثل Drawdown (حوالي 4 كيلوبايت).
بالنسبة إلى Twitter/YouTube، أدخل حقل عنوان URL مباشرة — يتعرف WordPress على التضمينات. بالنسبة إلى Instagram، استخدم iframe. أو ببساطة استخدم الحقل content لـ HTML الجاهز.
بالنسبة لمعظم عمليات التكامل (WordPress وStrapi وما إلى ذلك)، استخدم الحقل content الذي يوفر HTML جاهزًا لـ WordPress. هذا أبسط من تحليل Markdown وعناصر JSON بنفسك.
اسمح لـ Monok بمعرفة مكان نشر مقالاتك لتمكين حملات الوسائط الاجتماعية وتعزيز الارتباط البيني للمحتوى المستقبلي
مثال الارتباط الخلفي
1import { sendMonokLinkback } from "@monok/server";2 3await sendMonokLinkback({4 monokId: article.id,5 publicUrl: "https://example.com/blog/" + (article.slug ?? article.id),6 title: article.title,7 articleTextSample: article.text?.slice(0, 500),8 thumbnailUrl: "https://example.com/uploads/" + imageFile9});قم بمشاركة المقالات المنشورة على منصات التواصل الاجتماعي تلقائيًا عندما يتلقى Monok الرابط
يتعرف Monok على بنية المحتوى المنشور لديك ويقترح روابط داخلية أفضل للمقالات المستقبلية
تتبع كيفية أداء مقالاتك واحصل على رؤى حول مقاييس التفاعل عبر المحتوى الخاص بك
ما عليك سوى الاتصال بـ sendMonokLinkback() بعد النشر — وتتولى Monok الباقي
Provide your site information to Monok for better content matching. Monok will automatically align categories, authors, and tags with your existing structure.
Advanced Setup with Site Info
1import express from "express";2import {3 createMonokRouter,4 sendMonokLinkback,5 type MonokArticle6} from "@monok/server";7 8const app = express();9 10app.use(11 "/monok",12 createMonokRouter({13 apiKey: process.env.MONOK_API_KEY!,14 imageDir: "./uploads", // optional15 // Optional: provide site info if you want Monok to query it16 getSiteInfo: {17 js_scripts: "Enabled",18 version: "1.0.0",19 name: "My Site",20 logo: "https://example.com/logo.png",21 categories: ["Content", "News Articles", "Uncategorized"],22 post_types: ["post", "page"],23 tags: ["Tech", "Health", "News"],24 authors: [25 {26 name: "Jane Doe",27 profile: "Editor-in-chief",28 id: "1",29 avatar: "https://example.com/avatars/jane.png",30 roles: ["administrator"]31 }32 ]33 },34 onArticle: async (article: MonokArticle, { saveThumbImage, action }) => {35 const imagePath = await saveThumbImage();36 console.log("Received article:", article.title);37 38 if (action === "publish") {39 // publish immediately40 } else {41 // save as draft42 }43 44 // when you publish later, notify Monok:45 // await sendMonokLinkback({46 // monokId: article.id,47 // publicUrl: "https://example.com/blog/" + (article.slug ?? article.id),48 // title: article.title,49 // articleTextSample: article.text?.slice(0, 500),50 // thumbnailUrl: imagePath51 // ? "https://example.com/uploads/" + require("path").basename(imagePath)52 // : undefined53 // });54 }55 })56);57 58app.listen(3000);Monok learns your existing categories and automatically assigns articles to the most relevant ones based on content analysis.
Provide your author list so Monok can suggest or assign the appropriate author to each article based on topic and expertise.
Monok uses your existing tag taxonomy to suggest relevant tags for each article, maintaining consistency across your content.
Share your site name and logo with Monok to ensure all generated content aligns with your brand identity and guidelines.
The getSiteInfo configuration is entirely optional. However, providing this information significantly improves content quality and relevance by allowing Monok to understand your site's structure and existing content organization.




























قم بتثبيت @monok/server عبر npm. قم بإنشاء نقطة نهاية POST تتلقى بيانات المقالة من Monok. حفظ الصور تلقائيا. نشر على الفور أو كمسودات. إرسال الروابط الخلفية عندما يتم نشر المحتوى. هذا كل شيء — Monok يتولى الباقي.
المشكلات الشائعة وكيفية حلها
تحدد العديد من الخوادم كمية البيانات التي يمكنك إرسالها إليهم. عند إرسال حقل thumbImageData، يمكن أن يتجاوز هذا الحد، مما يؤدي إلى خطأ 413 Payload كبير جدًا.
Solution:
تأكد من أن قيمة Nginx الخاصة بـ client_max_body_size أكبر من 5 ميجابايت.
في بعض الحالات، تمتلك مواقع الويب مكالمات POST وGET محدودة عن طريق تقييد نقاط النهاية من خلال Nginx.
افتح نقاط النهاية التالية:
website.com/wp-json/monok/* (لـ WordPress)website.com/monok/* (لتكامل واجهة برمجة التطبيقات)حرف البدل موجود لأن هناك مسارين — إعدادات Nginx تفهم أحرف البدل.
إذا كان إعداد Nginx الخاص بك يقيد عناوين IP، فستحتاج إلى إضافة خادم Monok إلى القائمة البيضاء.
Solution:
افتحه لهذا العنوان: 51.158.177.191
ماذا يقول عملاؤنا

يعد العمل مع Monok أحد أكثر الأشياء المبتكرة التي قمنا بها كشركة وهو بالتأكيد يغير قواعد اللعبة بالنسبة لنا. Monok هو سلاحنا السري والمستقبل!
Ivan Mackenzie
رئيس, Plumjobs

لقد كان العمل مع Monok أحد أفضل تجاربنا مع مزود الخدمة. تتنبأ خريطة طريق منتجات Monok باستمرار باحتياجات السوق.
Matt Kovelan
مؤسس, SportsWriters

يتيح لنا Monok توسيع نطاق المحتوى المتوافق مع تحسين محركات البحث (SEO) دون إضافة حمل داخلي. المقالات متعلقة بالعلامة التجارية، وحادة تجاريًا، ومصممة لدعم مسارات الاستحواذ المدفوعة لدينا، مما يحول حركة المرور إلى نمو يمكن قياسه للعملاء.
Alexander Westerlund
مؤسس, PPCjuice

لقد أدى العمل مع Monok إلى تعزيز كيفية النشر على mobilen.nu. ما يبرز ليس السرعة فحسب، بل أيضًا التوطين الحقيقي، فالمحتوى لا يبدو مترجمًا، بل يبدو أنه مكتوب للجمهور السويدي منذ البداية.
Joel Carlsson
مؤسس, mobilen.nu
أعتقد أنه جيد جدًا! لقد استخدمته في SaaS المدعوم من ventura باللغة الصينية، وكانت اللغة جيدة جدًا
Xunzhu Tang, PhD
مؤسس, NoahCode

يعد العمل مع Monok أحد أكثر الأشياء المبتكرة التي قمنا بها كشركة وهو بالتأكيد يغير قواعد اللعبة بالنسبة لنا. Monok هو سلاحنا السري والمستقبل!
Ivan Mackenzie
رئيس, Plumjobs

لقد كان العمل مع Monok أحد أفضل تجاربنا مع مزود الخدمة. تتنبأ خريطة طريق منتجات Monok باستمرار باحتياجات السوق.
Matt Kovelan
مؤسس, SportsWriters

يتيح لنا Monok توسيع نطاق المحتوى المتوافق مع تحسين محركات البحث (SEO) دون إضافة حمل داخلي. المقالات متعلقة بالعلامة التجارية، وحادة تجاريًا، ومصممة لدعم مسارات الاستحواذ المدفوعة لدينا، مما يحول حركة المرور إلى نمو يمكن قياسه للعملاء.
Alexander Westerlund
مؤسس, PPCjuice

لقد أدى العمل مع Monok إلى تعزيز كيفية النشر على mobilen.nu. ما يبرز ليس السرعة فحسب، بل أيضًا التوطين الحقيقي، فالمحتوى لا يبدو مترجمًا، بل يبدو أنه مكتوب للجمهور السويدي منذ البداية.
Joel Carlsson
مؤسس, mobilen.nu
أعتقد أنه جيد جدًا! لقد استخدمته في SaaS المدعوم من ventura باللغة الصينية، وكانت اللغة جيدة جدًا
Xunzhu Tang, PhD
مؤسس, NoahCode
غطِّ موضوعات تتجاوز نطاق خبرتك، سواء كنت تنشر القليل أو تنتج على نطاق واسع.
التسعير
تمنحك كل خطة مرونة كاملة في الإنتاج. أوقفها مؤقتًا متى شئت، وادفع فقط مقابل المقالات التي نسلّمها.
العملة
جارٍ تحديث الأسعار المباشرة…
أساسي

بداية

مخصص

التعليمات
@monok/server عبارة عن حزمة Node.js توفر برامج وسيطة سريعة لتلقي المقالات من Monok. فهو يتعامل مع المصادقة وتخزين الصور ويوفر مساعدين للنشر وإشعارات الارتباط.
نعم، سيحتاج المطور إلى إعداد التكامل الأولي. ومع ذلك، فإن الحزمة @monok/server تجعل الأمر واضحًا - ما عليك سوى التثبيت عبر npm، وتكوين مفتاح واجهة برمجة التطبيقات (API)، وتحديد كيفية التعامل مع المقالات الواردة.
نقطتا نهاية رئيسيتان: يتلقى POST /monok/push بيانات المقالة (مع معلمة استعلام اختيارية ?action=draft أو ?action=publish)، ويقوم GET /monok/info بإرجاع معلومات موقعك إذا تم تكوينها (الفئات والعلامات والمؤلفون).
يتم إرسال الصور المصغرة للمقالة كبيانات base64. استخدم المساعد saveThumbImage() المتوفر في رد الاتصال onArticle لحفظها تلقائيًا في دليل imageDir الخاص بخادمك.
نعم. قم بتمرير خيار imageDir إلى createMonokRouter() لتحديد المكان الذي يجب تخزين الصور فيه. افتراضيًا، يتم حفظ الصور في "./uploads".
يقوم الرابط الخلفي بإعلام Monok عند نشر مقال على موقعك. استخدم sendMonokLinkback() لإرسال عنوان URL العام والعنوان والصورة المصغرة. وهذا يساعد Monok على تتبع الأداء وتقديم التحليلات.
نعم! تتضمن الحزمة إعلانات TypeScript المضمنة. يمكنك الحصول على الإكمال التلقائي الكامل والتحقق من كتابة كائنات المقالة وخيارات التكوين والوظائف المساعدة.
حاليًا تم تصميم @monok/server لـ Express. ومع ذلك، يمكنك تكييف المفهوم مع أطر عمل أخرى عن طريق إنشاء نقاط نهاية POST وGET مماثلة تتوافق مع مواصفات واجهة برمجة التطبيقات (API).
يتوفر مفتاح Monok API الخاص بك في إعدادات حسابك. قم بتخزينه بشكل آمن في متغيرات البيئة (مثلprocess.env.MONOK_API_KEY) ولا يلزمه مطلقًا بالتحكم في الإصدار.
يتضمن كائن المقالة: المعرف، والعنوان، والنص (محتوى HTML)، والارتباط، والعلامات، والفئة، ومعلومات المؤلف، وبيانات الصورة المصغرة، واللغة، وبيانات التعريف الأخرى. تتوفر أنواع TypeScript الكاملة في الحزمة.
لا، لقد تم تضمين تكامل واجهة برمجة التطبيقات (API) مع اشتراك Monok الخاص بك دون أي رسوم إضافية. الحزمة @monok/server مجانية ومفتوحة المصدر.
نعم. قم بتشغيل تطبيق Express محليًا واستخدم أداة مثل ngrok لعرضه على الإنترنت مؤقتًا. أضف عنوان URL ngrok إلى إعدادات Monok للاختبار.
قم بتوصيل Monok بالنظام الأساسي الخاص بك في دقائق معدودة باستخدام واجهة برمجة التطبيقات القوية الخاصة بنا.