لا يمكن استرداد روابط الدعوة التي تم إنشاؤها عبر البريد الإلكتروني

أقوم بنشر طلب إلى نقطة نهاية API /invites.json باستخدام تنسيق JSON التالي:

{
    "email": "new.member@example.com",
    "skip_email": true,
    "max_redemptions_allowed": 1,
    "expires_at": << تاريخ اليوم + شهر >>
    "group_names": "example_group"
}

وهو ما ينشئ دعوة صالحة، ثم ألتقط رابط الدعوة وأقدمه للمستخدم.

ومع ذلك، عندما يحاول المستخدم استبدال الدعوة، يفشل العملية عند discourse/app/controllers/invites_controller.rb at main · discourse/discourse · GitHub مع رسالة الخطأ العامة invite.error_message بسبب فشل تحديث قاعدة البيانات لسبب ما.

لقد حاولت تتبع الكود، لكنني لا أرى أي شيء واضح يلفت الانتباه.

إليك مثال على سجل من جدول invites:

  id  |            invite_key            |            email             | invited_by_id | user_id | redeemed_at |         created_at         |         updated_at         | deleted_at | deleted_by_id |       invalidated_at       | moderator | custom_message | emailed_status | max_redemptions_allowed | redemption_count |       expires_at
 1587 | 4b4e........................2307 | example@gmail.com            |             1 |         |             | 2021-04-11 23:51:05.253528 | 2021-04-11 23:51:05.253528 |            |               |                            | f         |                |              0 |                       1 |                0 | 2021-05-11 11:51:05.193

هل جربت فعل ذلك من خلال واجهة المستخدم؟ هل يعمل؟ إذا كان الأمر كذلك، فما الفرق بين الطلب الذي تقوم به واجهة المستخدم والطلب الذي قمت به أنت؟

هل هناك أي شيء في /logs على الموقع؟

للأسف، لم يظهر أي شيء في السجلات. لم أجرب ذلك من واجهة المستخدم بعد، وسأقوم بالتحقق من ذلك.

بالمناسبة، هل هناك منشور يصف كيفية تطبيق تصحيح أو تشغيل نسخة مشتقة في بيئة الإنتاج؟ راجع تعليقي هنا: Install Discourse for development using Docker - #152 by jessicah.

@سام يبدو أن الأمر يؤثر فقط على بعض المستخدمين وليس على الآخرين، لكنني لم أتمكن من تحديد ما هو المختلف :-/

أود تشغيل تصحيح يضيف تسجيلات إضافية، ولكن وفقًا للرابط في الرسالة السابقة، ورغم قدرتي على تشغيل بيئة تطوير، لا يمكنني جعلها تعمل في مثيلي الإنتاجي، لذا لا أعرف حقًا كيف يمكنني تصحيح الأخطاء :frowning:

لا يُسمح لجميع المستخدمين بدعوة الآخرين، هل أنت متأكد من أن المستخدم الذي يقوم بالدعوة عبر واجهة برمجة التطبيقات (API) لديه إذن الدعوة؟

invited_by_id هو 1، أي المسؤول، ويُستخدم لجميع الدعوات.

إعجاب واحد (1)

مرحبًا جيسيكا،

تغير رمز الدعوة لدينا بشكل كبير منذ أبريل، هل ما زلت تواجهين أي مشكلات هنا؟

cc @dan

إعجابَين (2)