ومع ذلك، نحتاج إلى التحقق من خدمة مختلفة باستخدام واجهة برمجة تطبيقات Discourse، لمعرفة ما إذا كان عنوان بريد إلكتروني معين موجودًا على موقع Discourse. يمكننا البحث عن اسم المستخدم أو الاسم عبر /u/search/users.json، لكن يبدو أن هذه الطريقة لا تُرجع عنوان البريد الإلكتروني.
إذًا، هل يمكن البحث أو استعلام جميع عناوين البريد الإلكتروني للمقارنة؟
نعم، الرابط المضمن في سؤالي الأول هو “Discourse Meta/emails.json”، ولكن هل توجد طريقة للحصول على جميع عناوين بريد المستخدمين؟ … أفضل استخدام واجهة برمجة التطبيقات (API) بدلاً من تنفيذ إضافة تسمح باستعلامات SQL إذا كان ذلك ممكنًا.
تُعد نقاط نهاية واجهة برمجة التطبيقات الخاصة بنا هي تلك التي تستهلكها تطبيق الويب، وبما أننا نسجل استعلامات البريد الإلكتروني على تطبيق الويب، فإننا لا نعرض أي مكان لاستخراج عناوين البريد الإلكتروني بكميات كبيرة.
الطريقة الوحيدة، في الوقت الحالي، هي استخدام حل مستكشف البيانات المذكور أعلاه.
وللتوضيح فقط، نحن نستخدم واجهة برمجة التطبيقات عبر مفتاح سري. أفهم أن الواجهة الأمامية لن تتمتع بنفس الصلاحيات، لكن ألا يمكن لواجهة برمجة التطبيقات الحصول على الوصول؟
ولإعطاء المزيد من التفاصيل، لدينا تطبيق ومنصة Discourse، وكلاهما يستخدمان المصادقة الموحدة عبر Auth0. ومع ذلك، إذا قام شخص ما بتسجيل الدخول إلى تطبيقنا، نريد التأكد من أن لديه حسابًا في Discourse (وتوجيهه إلى ذلك الرابط). ربما لا تكون هذه أفضل طريقة للتحقق مما إذا كان Discourse قد سجل عنوان البريد الإلكتروني إذا زاروا موقعنا أولاً. هذا رابط إلى Discourse في حال لم يكن عنوان البريد الإلكتروني مسجلاً.
إذا كنت تستخدم Discourse SSOالحقيقي، فيمكنك الاستعلام عن وجود مستخدم من خلال معرفه الفريد الخارجي الممرر في حمولة SSO باستخدام GET https://example.com/u/by-external/<EXTERNAL_ID>