Skip to main content
يربط مستخدموك حساباتهم الاجتماعية بأنفسهم — فهم يصادقون مباشرةً مع كل شبكة، وأنت لا ترى بيانات اعتمادهم ولا تخزنها أبدًا. كل ما في هذه الصفحة يدور حول إيصالهم إلى تلك اللحظة ومعرفة كيف جرت. ثمة أمر مشترك بين كل المسارات: جلسة ربط (link session)، تُنشأ عبر إنشاء Link Session من مفتاح API الخاص بك وProfile-Key. لا يُوقَّع شيء من جانبك ولا يوجد مفتاح خاص في التدفق.

ثلاث طرق للربط

ثلاثة أشكال، والأول والثاني هما التكامل نفسه. اختر بحسب التدفق — فهي ليست متنافية، وكثير من التكاملات تستخدم الصفحة المستضافة للتأهيل والأداة داخل التطبيق بعد ذلك.
صفّا الأداة هما تكامل واحد لا اثنان. استدعاء init واحد يمنحك الاثنين معًا: ركّب الإطارات حيث تريد أزرارنا، واستدعِ popup() من زرك الخاص في أي مكان آخر. يتشاركان جلسة واحدة ويبلّغان على المعالجات نفسها.الوضع المباشر (Direct mode) هو النافذة المنبثقة نفسها دون السكربت الخاص بنا — لصفحة ذات Content-Security-Policy صارمة، أو صفحة تُعرض من الخادم، أو تطبيق أصلي. هناك تفتح النافذة المنبثقة وتراقبها بنفسك.غير متأكد؟ ابدأ بصفحة الربط المستضافة. فهي لا تحتاج إلى Max Pack ولا إلى معاملات إضافية، وهي أسرع طريق إلى شيء يعمل — والانتقال إلى الأداة لاحقًا لا يغيّر طريقة إنشاء الجلسات.

إنشاء رابط

استدعِ إنشاء Link Session مع تمرير Profile-Key الخاص بالمستخدم في الترويسة. بالنسبة للصفحة المستضافة، هذا هو الطلب بأكمله:
cURL
يُعاد إليك url يحمل رمزًا معتّمًا قصير الأجل:
Linking URL
يمكنك أيضًا التحقق مما إذا كان رابط قد فُتح وإبطاله قبل انتهاء صلاحيته.
فيديو مدته دقيقة واحدة يوضّح كيفية إنشاء رابط. سُجّل قبل Link Sessions، لذا لا يزال يُظهر إرسال Private Key — لم تُعد هذه الخطوة لازمة، وكل ما عداه في الفيديو لم يتغيّر.

إرسال رابط الربط

يُسجّل رابط الربط دخول مستخدمك إلى ملفه، لذا تعامل معه كما تتعامل مع كلمة المرور. أرسله عبر قناة تثق بها، ولا تُدرجه في السجلات، ولا تُمرّره إلى طرف ثالث. ويظل صالحًا للاستخدام خلال نافذته الزمنية بأكملها، لذا يعمل إعادة التحميل أو إعادة محاولة OAuth — لكن أرسل كل رابط إلى مستخدم واحد فقط، وأنشئ رابطًا منفصلًا لكل شخص.

فتح رابط الربط

افتحه في علامة تبويب متصفح جديدة أو نافذة جديدة أو View Controller. يمكنك التحكم في إغلاق أو إعادة توجيه تلك النافذة.
لا تسمح الشبكات الاجتماعية بفتح صفحة الربط المستضافة داخل iFrame، ولا بإخفاء نطاق أصل الشريك المعتمد profile.ayrshare.com. إذا أردت أن يجري الربط داخل صفحتك أنت، فذلك هو دور الأداة المضمّنة: تُقدَّم إطاراتها من أصل تابع لـ Ayrshare وهي الطريقة المدعومة للقيام بذلك.

معرفة اكتمال الربط

إشارتان، ويمكنك استخدام أيٍّ منهما:
  • أحداث اكتمال الربط — عيّن origin عند إنشاء الرابط فترسل نافذة الربط connect:success وconnect:error وconnect:cancelled إلى صفحتك لحظة وقوعها. دون استطلاع.
  • الحصول على Link Session — يُبلغ عن completedAt وlastCompletedAt وcompletedNetworks. هذه هي إشارة التطبيقات الأصلية، والوحيدة لـ Telegram، الذي يكتمل خارج النطاق.

انتهاء صلاحية الرابط

الرابط صالح لمدة 5 دقائق افتراضيًا. بعد ذلك، أنشئ رابطًا جديدًا. مع Max Pack، اضبط expiresIn بالدقائق لتوسيع تلك النافذة — حتى 2880 دقيقة (48 ساعة)، وهو الحد الأقصى الذي تقبله API:
Expires In
النافذة الأطول هي ما يجعل إرسال الرابط بالبريد الإلكتروني عمليًا — فالمستخدم الذي يعيد ربط حساب انقطع يمكنه الانتقال مباشرةً من بريدك الإلكتروني إلى الشبكة، دون زيارة تطبيقك أولًا.
راجع مع فريق الأمان لديك المدة التي ينبغي أن يظل الرابط فيها صالحًا. النافذة الأطول تعني فترة أطول يظل فيها الرابط المُعترَض صالحًا للعمل. وإذا تسرّب رابط، يمكنك إبطاله بدلًا من انتظار انتهاء صلاحيته.

Profile Key

يحدّد Profile-Key أي User Profile يخصّه الرابط. يمكنك العثور عليه في لوحة مطوّري Ayrshare بالتبديل إلى ذلك الملف.
لم تُعد Private Key مستخدمة. الروابط غير موقّعة، لذا لا يوجد ما يُقرأ من ملف أو يُلصق في التعليمات البرمجية. ولا يزال المعامل القديم privateKey يُقبل ويُتجاهل، لذا تستمر عمليات التكامل الحالية في العمل، ويمكن ترك ملف private.key في Integration Package دون استخدام.

التبديل بين الملفات الشخصية

إذا كان ملف شخصي مُسجَّل الدخول بالفعل، فإن فتح رابط ملف آخر لا يبدّل الملفات — وهذا مقصود، فهو يجعل التجربة أسرع للمستخدم الموجود هناك بالفعل. لفرض التبديل، راجع تسجيل الخروج التلقائي من جلسة الملف الشخصي. يمكن ربط حسابات Instagram بـ طريقتين: مباشرة عبر Instagram Login، أو عبر Facebook Page متصلة. يتحكم في التدفق الذي يبدأ عند نقر المستخدم على زر Instagram عادةً إعداد Instagram Login على مستوى الحساب. يتجاوز معامل الجسم instagramLinkMethod هذا الإعداد لرابط واحد:
Instagram Link Method
يسري التجاوز طوال عمر ذلك الرابط، بما في ذلك عبر إعادة توجيه التفويض في Instagram/Facebook. بعض الأمور التي يجب معرفتها:
  • لا يغيّر إعدادك على مستوى الحساب ولا يؤثر على أي رابط آخر.
  • إذا حُذف، يسري الإعداد على مستوى الحساب، تمامًا كما كان من قبل.
  • تعيد القيمة غير الصالحة 400 مع سرد القيم الصالحة (instagram، facebook).
  • راجع اختلافات الميزات قبل الاختيار — بعض ميزات Instagram، مثل البحث عن الوسوم والتعاون، متاحة فقط مع مصادقة Facebook Page.

بريد Connect Accounts

يمكن لـ Ayrshare إرسال الرابط بالبريد الإلكتروني إلى مستخدمك نيابةً عنك، ليتمكن من الوصول إلى صفحة الربط الخاصة به دون زيارة تطبيقك. اقرنه بقيمة expiresIn أطول — فالدقائق الخمس الافتراضية نادرًا ما تصمد أمام صندوق وارد.

JSON لربط الحسابات

كل حقل داخل email مطلوب. أي حقل مفقود يُفشل الإرسال.
Example Contact Email Request
expiresIn معامل من المستوى الأعلى، وليس جزءًا من كائن email. إذا وُضع داخل email يُتجاهل، ويحصل مستخدمك على رابط تنتهي صلاحيته خلال خمس دقائق.
تُبلّغ الاستجابة عن النتيجة في emailSent:
Example Contact Email Response
فشل الإرسال لا يُعاد على شكل emailSent: false — بل يعيد code: 333 بدلًا من ذلك. لذا فإن false تعني أنه لم يُطلب أي بريد إلكتروني.

مثال بريد Connect Accounts

فيما يلي مثال على البريد الإلكتروني الذي يفتح صفحة الربط الاجتماعي: Connect Accounts email يأتي البريد الإلكتروني من العنوان: Social Connect Hub <connect@socialconnecthub.com>

تطبيقات الأجهزة المحمولة

افتح رابط الربط في متصفح النظام، وليس أبدًا في webview مضمّن: يرفض Google تسجيل الدخول فيه بالخطأ disallowed_useragent، وتحجبه Meta كليًا. سيرى مستخدمك صفحة الخطأ الخاصة بالشبكة نفسها، ولا شيء من جانبك يصلح ذلك.
  • iOS — ‏ASWebAuthenticationSession، أو SFSafariViewController.
  • Android — ‏Chrome Custom Tabs.
ولأن التطبيق الأصلي لا يملك نافذة متصفح تُرسل إليها الأحداث، احصل على النتيجة من الحصول على Link Session بدلًا من ذلك. عيّن origin على مخططك المخصص (myapp://connected) حتى يكون للصفحة طريق عودة إلى تطبيقك.

أمثلة التعليمات البرمجية للأجهزة المحمولة

استبدل linkingURL بقيمة url المُعادة من إنشاء Link Session.

الاختبار

يوصى أولًا بإنشاء رابط في Postman. يتضمّن Integration Package الخاص بك — المتوفر في صفحة API Key الخاصة بـ Primary Profile في لوحة التحكم — ملف إعداد Postman نموذجيًا. استورده، واملأ Profile Key الخاص بك في حقل body الخاص بـ profileKey، وانقر على Send. لا يزال الإعداد النموذجي يملأ privateKey وdomain مسبقًا. يُتجاهل privateKey، ويمكنك إفراغ domain إلا إذا كان لحسابك أكثر من نطاق ربط واحد. يمكنك أيضًا توليد التعليمات البرمجية من Postman.

Bubble.io

Bubble linking URL

القديم: generateJWT

تنفّذ إنشاء رابط ربط (generateJWT) المهمة نفسها وهي مهملة (deprecated) — مدعومة بالكامل، وبلا موعد للإزالة، ودون تغيير للروابط التي سلّمتها بالفعل. توثّق صفحتها الخاصة معاملاتها، بما في ذلك المعاملات الثلاثة التي باتت تُقبل الآن وتُتجاهل.تستخدم نقطتا النهاية المُحقِّق نفسه، لذا فإن كل ما في هذه الصفحة ينطبق على أيٍّ منهما. الفرق الوحيد الجدير بالمعرفة عند الانتقال: يتسامح generateJWT مع ثلاثة أمور ترفضها إنشاء Link Session — شبكة غير معروفة في allowedSocial، ونصف واحد فقط من بيانات اعتماد X، وredirect غير نصي.