إدارة السوشيال ميديا بعلامة بيضاء للوكالات ومنصات SaaS
أرسل لكل عميل رابطا إلى صفحة ربط تحمل شعارك ونصوصك ومظهرك. يربط العميل حساباته على TikTok أو Instagram أو YouTube أو LinkedIn مرة واحدة. بعدها تنشر وتجدول نيابة عنه عبر API أو n8n أو Make.
البداية مجانية ودون بطاقة ائتمان. العلامة البيضاء متاحة ابتداء من خطة Professional.
import { UploadPost } from 'upload-post';
const api = new UploadPost('YOUR_API_KEY');
// One profile per client
const client = 'client-harbor';
await api.createUser(client);
// Branded connect link, valid for 48 hours
const { access_url } = await api.generateJwt(client, {
logoImage: 'https://youragency.com/logo.png',
connectTitle: 'Connect your accounts',
redirectUrl: 'https://youragency.com/done',
platforms: ['instagram', 'tiktok', 'linkedin']
});
// Send access_url to your client لقطات شاشة حقيقية
ما يراه عملاؤك
هذه صفحة الربط الفعلية التي يفتحها عميلك، معروضة بعلامة تجارية تجريبية. Northwind Studio وكالة وهمية و"Harbor Demo Cafe" عميل وهمي، أما الصفحة والتصميم والخيارات فهي حقيقية.
platforms.
connect_theme: "dark". عند فرض المظهر يختفي زر التبديل بين الفاتح والداكن، فيرى كل عميل ما اخترته أنت.
ui_labels: العنوان العلوي وعناوين الأقسام ونص الخصوصية وكل أزرار Connect تقول الآن ما تريده الوكالة.
platforms يرى العميل كل الشبكات، والأقل استخداما منها خلف زر "Show 9 more networks". ظهر Reddit غير متاح يوم التقاط الصورة.
ما يستطيع العميل فعله في هذه الصفحة
- ربط TikTok وInstagram وYouTube وLinkedIn وباقي شبكات OAuth من شاشة تسجيل الدخول الخاصة بالشبكة نفسها، فلا تصل كلمة مروره إليك ولا إلى Upload-Post. أما Bluesky وTelegram وDiscord وبعض الشبكات الأخرى فتستخدم بدلا من ذلك كلمة مرور تطبيق أو رمز بوت أو webhook.
- اختيار صفحة Facebook أو صفحة شركة LinkedIn أو موقع Google Business الذي ستنشر عليه.
- إعادة ربط حساب انتهت صلاحية وصوله، أو فصل أي حساب في أي وقت.
- الاطلاع على تقويم المنشورات المجدولة إن تركته مفعّلا. ومع خيار القراءة فقط يكون هذا كل ما يستطيع فعله.
- العودة إلى موقعك عبر الزر الذي اخترت نصه.
الرابط مرتبط بملف واحد. لا يرى العميل ولا يغيّر إلا حساباته، ولا يصل أبدا إلى عملائك الآخرين ولا إلى مفتاح API الخاص بك.
كيف تعمل للوكالة
خمس خطوات من عميل جديد إلى أول منشور مجدول له. كل خطوة تعمل من لوحة التحكم أو من API.
- 1
أنشئ ملفا لكل عميل
من لوحة التحكم ادخل إلى Manage Users وأضف ملفا، أو استدع
POST /api/uploadposts/usersباسم مستخدم مثلclient-harbor. يضم الملف حسابا واحدا لكل شبكة. - 2
أنشئ رابط الربط بعلامتك
اضغط Share بجانب الملف واملأ الشعار والعنوان والوصف واللغة ورابط إعادة التوجيه ونص الزر والشبكات. أو أرسل الحقول نفسها إلى
POST /api/uploadposts/users/generate-jwt. ستحصل علىaccess_urlصالح لمدة 48 ساعة. - 3
أرسله إلى عميلك
عبر البريد أو المحادثة أو داخل مسار تسجيل العملاء الخاص بك. لا يحتاج العميل إلى حساب في Upload-Post ولا يرى لوحة التحكم الخاصة بك أبدا.
- 4
يربط العميل حساباته
يسجل الدخول في TikTok أو Instagram أو YouTube أو LinkedIn ويوافق على منح الوصول. تُخزَّن رموز الوصول مشفرة وتُجدَّد تلقائيا. وإذا أعددت webhook، يصلك الحدث
social_account_connectedلحظة حدوث الربط. - 5
انشر وجدول نيابة عنه
انشر مع
user=client-harborوأضفscheduled_dateلجدولة المنشور. يمكنك ذلك من لوحة التحكم، أو من الكود، أو من قوالب n8n، أو من سيناريو في Make، أو من مساعد ذكاء اصطناعي عبر خادم MCP. واجلب أرقام كل عميل من نقطة نهاية الإحصاءات.
كل خيارات العلامة التجارية
كلها حقول في استدعاء generate-jwt وتُحفظ في ملف العميل. العمود الأخير يوضح هل يمكنك ضبط الخيار من لوحة التحكم أيضا.
| الخيار | المعامل | ماذا يفعل | مثال | لوحة التحكم |
|---|---|---|---|---|
| الشعار | logo_image | يعرض شعارك أعلى الصفحة. يقبل أي رابط صورة عام يبدأ بـ http(s). | "https://youragency.com/logo.png" | نعم |
| عنوان الصفحة | connect_title | يستبدل العنوان الرئيسي الذي يظهر افتراضيا بعبارة "Connect your social accounts". | "Connect your accounts to Northwind Studio" | نعم |
| الوصف | connect_description | يستبدل سطر النص الذي يظهر تحت العنوان. | "Link the channels we will manage for you." | نعم |
| الشبكات المعروضة | platforms | تظهر فقط الشبكات التي تحددها. إذا لم ترسله يرى العميل كل الشبكات. | ["instagram", "tiktok", "linkedin"] | نعم |
| رابط إعادة التوجيه | redirect_url | الصفحة التي يعود إليها العميل عند الضغط على زر الرجوع بعد الانتهاء. | "https://youragency.com/onboarding/done" | نعم |
| نص زر الرجوع | redirect_button_text | النص المكتوب على زر الرجوع. | "Back to Northwind Studio" | نعم |
| اللغة | language | يفرض الإنجليزية أو الإسبانية أو الألمانية أو الفرنسية أو البرتغالية أو البولندية أو التركية. بدونه تتبع الصفحة لغة المتصفح وتعود إلى الإنجليزية عند عدم التوفر. | "es" | نعم |
| أي نص في الصفحة | ui_labels | يعيد كتابة نصوص الصفحة واحدا واحدا حسب مفتاح كل نص: الأزرار وعناوين الأقسام ونص الخصوصية. حتى 100 مفتاح، و300 حرف لكل مفتاح. | {"connect.card.connect": "Link account"} | عبر API فقط |
| المظهر | connect_theme | يفرض الوضع الفاتح أو الداكن ويخفي زر تبديل المظهر. القيمة "auto" تترك الاختيار للزائر. | "dark" | عبر API فقط |
| تبويب التقويم | show_calendar | يعرض أو يخفي تبويبا فيه تقويم المنشورات المجدولة لهذا الملف. مفعّل افتراضيا. | false | نعم |
| تقويم للقراءة فقط | readonly_calendar | يرى العميل التقويم فقط. لا يستطيع تعديل المنشورات أو حذفها، ولا ربط الحسابات أو فصلها. | true | نعم |
كل الخيارات في طلب واحد
curl -X POST https://api.upload-post.com/api/uploadposts/users/generate-jwt \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"username": "client-harbor",
"logo_image": "https://youragency.com/logo.png",
"connect_title": "Connect your accounts to Northwind Studio",
"connect_description": "Link the channels we will manage for you.",
"platforms": ["instagram", "tiktok", "linkedin"],
"redirect_url": "https://youragency.com/onboarding/done",
"redirect_button_text": "Back to Northwind Studio",
"language": "en",
"connect_theme": "light",
"ui_labels": { "connect.card.connect": "Link account" },
"show_calendar": false
}' معلومات مفيدة
- أرسل بيانات العلامة كاملة في كل مرة تنشئ فيها رابطا. الشعار والعنوان والوصف ونص الزر ورابط إعادة التوجيه والشبكات واللغة تُمسح من الملف إذا لم ترسلها.
-
ui_labelsوconnect_themeومفتاحا التقويم لا تتغير إلا عندما ترسلها. أرسلnullأو{}لإعادة النصوص إلى وضعها الافتراضي. - النصوص المخصصة تحل محل النص بأي لغة تعرضها الصفحة. إذا كتبت نصوصك بالإنجليزية وكان متصفح العميل بالفرنسية، يبقى باقي الصفحة بالفرنسية، لذلك اضبط
languageأيضا. - مفاتيح النصوص والمرجع الكامل للمعاملات موجودة في توثيق User Profiles API.
ما لا يشمله التخصيص بعلامتك
الأفضل أن تقرأه هنا بدل أن تعرفه من عميل. هذه الأجزاء من المسار ما زالت تُظهر Upload-Post أو الشبكة الاجتماعية.
العنوان
الصفحة المستضافة موجودة على app.upload-post.com/connect. لا يوجد خيار نطاق مخصص أو CNAME. إذا احتجت إلى نطاقك الخاص فابنِ صفحتك عبر Connect API، مع العلم أن OAuth callback يمر عبر app.upload-post.com للحظة.
شاشات الموافقة في الشبكات
عندما يسجل العميل الدخول، تعرض TikTok وMeta وGoogle وLinkedIn وغيرها شاشتها الخاصة مع التطبيق المسجل لديها، وهو تطبيق Upload-Post المعتمد. ولهذا السبب أيضا لا تحتاج إلى المرور بمراجعات التطبيقات لديها.
مربع الخصوصية
تظهر دائما في الصفحة ملاحظة قصيرة بعنوان "How your data is used" مع روابط إلى سياسة خصوصية Upload-Post وإلى [email protected]. وتذكر افتراضيا شركة TONVI TECH SL، الشركة المشغلة لـ Upload-Post، بصفتها معالج البيانات. يمكنك إعادة صياغة النص عبر ui_labels، لكن المربع وهذه الروابط تبقى.
الألوان وعنوان التبويب ولوحة التحكم
تختار بين الفاتح والداكن، لا لون علامتك: تبقى الأزرار بلون Upload-Post النيلي. عنوان تبويب المتصفح وأيقونته من Upload-Post. ولوحة التحكم التي يدخل إليها فريقك هي Upload-Post، وليست تطبيقا بعلامة أخرى.
لماذا لا تبني التكاملات بنفسك؟
التكامل المباشر يعني مراجعات التطبيقات لدى Meta وTikTok، ومنطق تجديد رموز الوصول، وتغييرات API التي تكسر الكود، وذلك لكل شبكة على حدة. مع API واحدة تحصل على كل الشبكات خلف نقطة نهاية واحدة وصفحة الربط فوقها.
الوكالات
ملف لكل عميل، وعلامتك على رابط الربط، والنشر والجدولة من مكان واحد
منصات SaaS
أضف النشر على الشبكات الاجتماعية إلى منتجك دون بناء تكامل منفصل لكل شبكة
أدوات صناعة المحتوى
دع المستخدمين ينشرون ما يصنعونه مباشرة على حساباتهم الاجتماعية
استدعاءات API التي تقف خلفها
للمطورين الذين يدمجونها في منتج SaaS أو أداة وكالة. لا مسارات OAuth تبنيها ولا بيانات اعتماد منصات تديرها.
أنشئ ملفا لكل عميل أو مستخدم
الملف هو الحاوية التي تضم الحسابات الاجتماعية لعميل واحد (أو لمستخدم واحد في تطبيقك). استخدم معرّفك الداخلي اسما للمستخدم ليصبح الربط بين النظامين سهلا.
curl -X POST https://api.upload-post.com/api/uploadposts/users \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"username": "your-internal-user-id-123"}' أنشئ رابط الربط بعلامتك
هنا تضع علامتك: الشعار والعنوان ورابط إعادة التوجيه والشبكات وباقي الخيارات في الجدول أعلاه. تحتوي الاستجابة على access_url صالح لمدة 48 ساعة.
curl -X POST https://api.upload-post.com/api/uploadposts/users/generate-jwt \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"username": "your-internal-user-id-123",
"redirect_url": "https://yourapp.com/social-connected",
"logo_image": "https://yourapp.com/logo.png",
"platforms": ["tiktok", "instagram", "youtube"]
}' يربط العميل حساباته
أرسل العميل أو المستخدم إلى access_url. في شبكات OAuth مثل TikTok وInstagram وYouTube يسجل الدخول مباشرة لدى الشبكة، فلا يرى Upload-Post كلمة مروره أبدا، وتُخزَّن رموز الوصول الناتجة مشفرة.
ما يتولاه Upload-Post عنك
مسارات OAuth 2.0
تجديد رموز الوصول
تخزين مشفّر
انشر أو جدول نيابة عنه
أضف اسم مستخدم الملف في الحقل user ضمن أي طلب رفع. وأضف scheduled_date للنشر لاحقا بدلا من الآن.
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: ApiKey YOUR_API_KEY" \
-F "user=your-internal-user-id-123" \
-F "video=@/path/to/video.mp4" \
-F "title=قائمة الخريف الجديدة" \
-F "platform[]=tiktok" \
-F "platform[]=instagram" \
-F "scheduled_date=2026-10-02T09:00:00Z" مفتاح API واحد وملف لكل عميل
كل عملائك تحت حساب واحد ومفتاح API واحد، ولكل منهم ملفه الخاص بحساباته الاجتماعية.
كيف تعمل الملفات
كل ملف يربط حسابا واحدا لكل شبكة. خطتك تحدد عدد الملفات، والملفات ليست حدا لعدد الحسابات الاجتماعية: في خطة Professional يمكنك ربط 25 حسابا على TikTok و25 حسابا على Instagram و25 حسابا على LinkedIn في الوقت نفسه.
- بيانات اعتماد منفصلة: رموز الوصول الاجتماعية لكل عميل تخص ملفه وحده
- webhook لكل عميل: امنح كل ملف رابطه الخاص لأحداث الربط والرفع
- فاتورة واحدة: اشتراك واحد يغطي كل العملاء
مثال على الإعداد
| الخطة | الملفات المتضمنة | الدفع الشهري | الدفع السنوي |
|---|---|---|---|
| Professional | 25 | $50 شهريا | $33 شهريا ($400 سنويا) |
| Advanced | 75 | $147 شهريا | $118 شهريا ($1,411 سنويا) |
| Business | 225، ثم $1 شهريا لكل ملف إضافي | $438 شهريا | $350 شهريا ($4,205 سنويا) |
الأسعار بالدولار الأمريكي كما في سبتمبر 2026. الأسعار باليورو وحزم الملفات الإضافية لخطتي Professional وAdvanced موجودة في قسم الأسعار، وهو المرجع المحدّث دائما.
من يستخدم تكامل السوشيال ميديا بعلامة بيضاء؟
منصات SaaS
أنظمة إدارة المحتوى، ومنصات أتمتة التسويق، وبرمجيات الأعمال.
وكالات التسويق
وكالات التسويق الرقمي وشركات إدارة حسابات السوشيال ميديا.
منصات المحتوى
منصات التدوين، ومواقع استضافة الفيديو، وأدوات صناعة المحتوى.
المنصات التعليمية
أنظمة إدارة التعلم ومنصات المحتوى التعليمي.
منصات التجارة الإلكترونية
الأسواق الإلكترونية وحلول التجارة الإلكترونية.
منصات الفيديو
منصات استضافة الفيديو وخدمات البث.
المواصفات التقنية والامتثال
المنصات المدعومة
إضافة إلى 11 منصة أخرى، منها Google Business وSlack وMastodon وWordPress. اطلع على المنصات الـ 22 كلها
ميزات الأمان
رموز الوصول إلى الشبكات الاجتماعية مشفرة أثناء التخزين.
في شبكات OAuth يسجل العملاء الدخول من شاشة الشبكة نفسها. لا تمر كلمة مرورهم عبرك ولا عبر Upload-Post.
كل رابط ربط يفتح ملفا واحدا فقط وتنتهي صلاحيته بعد 48 ساعة.
ضع علامتك على تجربة انضمام عملائك
أنشئ ملفا، واضغط Share، وأرسل الرابط. أول صفحة ربط بعلامتك تستغرق دقائق.
البداية مجانية ودون بطاقة ائتمان. العلامة البيضاء متاحة من خطة Professional.
إدارة السوشيال ميديا بعلامة بيضاء: الأسئلة الشائعة
أسئلة تطرحها الوكالات وفرق SaaS قبل إرسال أول رابط ربط بعلامتها
هل يحتاج عملائي إلى حساب في Upload-Post؟
لا. رابط الربط يحمل رمز وصول خاصا بملف ذلك العميل وحده. يفتحه العميل ويسجل الدخول في كل شبكة اجتماعية وينتهي الأمر. الرابط صالح لمدة 48 ساعة، وبعدها تنشئ رابطا جديدا.
هل يمكنني وضع صفحة الربط على نطاقي الخاص؟
ليس الصفحة المستضافة: فهي دائما على app.upload-post.com/connect ولا يتوفر خيار النطاق المخصص. إذا كان العنوان مهما لك، تتيح Connect API بناء الصفحة على موقعك. وحتى في هذه الحالة تعيد الشبكة العميل عبر app.upload-post.com للحظة، لأنه عنوان OAuth callback المسجل لدى كل منصة.
ما الخطط التي تتضمن العلامة البيضاء؟
خطط Professional وAdvanced وBusiness. لا تتضمنها خطتا Free وBasic. تأتي Professional مع 25 ملفا، وAdvanced مع 75، وBusiness مع 225، وفي Business يكلف كل ملف إضافي 1 دولار شهريا. لا حاجة إلى مكالمة مع فريق المبيعات: تختار الخطة من صفحة الأسعار.
كم حسابا للعميل يتسع له الملف الواحد؟
يضم الملف حسابا واحدا لكل شبكة، لذلك يمكن أن يكون الملف الواحد عميلا ربط Instagram وTikTok وLinkedIn وYouTube. 25 ملفا تعني حتى 25 حسابا على كل شبكة، وليس 25 حسابا في المجموع. العميل الذي لديه حسابان على Instagram يحتاج إلى ملفين.
هل عليّ إرسال بيانات العلامة في كل مرة أنشئ فيها رابطا؟
نعم، بالنسبة إلى الشعار والعنوان والوصف ونص الزر ورابط إعادة التوجيه والشبكات واللغة. كل استدعاء لـ generate-jwt يحفظ ما ترسله بالضبط، فالحقل الذي لا ترسله يُمسح من ذلك الملف. أما ui_labels وconnect_theme وshow_calendar وreadonly_calendar فمختلفة: لا تتغير إلا عندما ترسلها.
هل يستطيع عملائي رؤية المنشورات المجدولة؟
نعم. تبويب التقويم مفعّل افتراضيا ويعرض المنشورات المجدولة لذلك الملف. فعّل readonly_calendar ليصبح الرابط تقويم محتوى للعرض فقط: يرى العميل المنشورات لكنه لا يستطيع تعديلها أو حذفها أو تغيير الحسابات المربوطة. أرسله إلى /connect/calendar بالرمز نفسه ليفتح التقويم مباشرة.
ما اللغات التي تدعمها صفحة الربط؟
الإنجليزية والإسبانية والألمانية والفرنسية والبرتغالية والبولندية والتركية. العربية غير مدرجة حاليا. يمكنك فرض لغة لكل ملف عبر المعامل language أو ترك الصفحة تتبع لغة المتصفح. ولأي صياغة أخرى، يتيح لك ui_labels كتابة النصوص بنفسك.
كيف أعرف أن العميل ربط حسابا؟
عبر webhooks. يرسل Upload-Post الأحداث social_account_connected وsocial_account_disconnected وsocial_account_reauth_required وupload_completed. ويمكن أن يكون لكل ملف رابط webhook خاص به، فيرسل كل عميل أحداثه إلى نقطة نهاية مختلفة في نظامك.
هل يمكنني جلب الإحصاءات لكل عميل؟
نعم. نقطة نهاية الإحصاءات تستقبل اسم مستخدم الملف، فتحصل على أرقام عميل واحد في كل مرة وتبني تقاريرك الخاصة فوقها.
هل توفرون حزم SDK؟
توجد حزم SDK رسمية لـ Python (pip install upload-post) ولـ JavaScript/Node (npm install upload-post). وما عدا ذلك فهي REST API عادية تعمل بمفتاح API، لذلك تعمل مع أي لغة برمجة أو أداة بدون كود قادرة على إرسال طلبات HTTP.
كم يستغرق الإعداد؟
بدون كود: أنشئ ملفا في Manage Users، واضغط Share، واملأ بيانات علامتك وأرسل الرابط. عبر API هما استدعاءان فقط، واحد لإنشاء الملف وآخر لإنشاء الرابط، إضافة إلى استدعاءات الرفع التي تحتاجها أصلا للنشر.
ما الدعم الذي أحصل عليه؟
توثيق مع أمثلة كود لكل نقطة نهاية، ودعم عبر البريد على [email protected]. تتضمن خطتا Advanced وBusiness دعما ذا أولوية.
مزيد من التفاصيل: User Profiles API، Connect API، Webhooks و SDKs.