Python > الحصول على محتوى المنشور عند ذكره

أفترض أن ما تريد القيام به هو إنشاء رد من OpenAI عند ذكر اسم مستخدم معين (على سبيل المثال، UserA) في منشور. إذا كان هذا صحيحًا، فبدلاً من إجراء طلبات API إلى Discourse للحصول على الإشعارات، يمكنك توجيه webhook لحدث إشعار Discourse إلى خادم تطبيق Python الخاص بك. سيحتاج تطبيق Python إلى النظر في حمولة webhook. إذا تم تعيين notification_type للحمولة على 1، وكان user_id الخاص بها يطابق معرف المستخدم الذي تهتم بالحصول على إشعارات له، فستقوم بإجراء طلب API إلى Discourse للحصول على المنشور المحدد في حقل original_post_id للحمولة. ثم قم بإرسال محتوى المنشور الذي تم إرجاعه من هذا الطلب إلى OpenAI.

إليك مثال على شكل الحمولة لإشعار الإشارة:

{
  "notification": {
    "id": 55267,
    "user_id": 2,
    "notification_type": 1,
    "read": false,
    "high_priority": false,
    "created_at": "2022-12-08T23:23:36.379Z",
    "post_number": 5,
    "topic_id": 277,
    "fancy_title": "I should be able to call this topic anything",
    "slug": "i-should-be-able-to-call-this-topic-anything",
    "data": {
      "topic_title": "I should be able to call this topic anything",
      "original_post_id": 10999,
      "original_post_type": 1,
      "original_username": "scossar",
      "revision_number": null,
      "display_username": "scossar"
    }
  }
}

تكمن فائدة هذا النهج في أنه سيتيح لك تلقي الإشعارات في الوقت الفعلي - دون الحاجة إلى إجراء عدد كبير من طلبات API إلى موقع Discourse الخاص بك.

إذا اخترت نهج webhook، فسيكون من الجيد تعيين حقل “Secret” الخاص بـ webhook على Discourse، ثم التحقق من صحة الطلب على تطبيق Python الخاص بك للتأكد من تعيين المفتاح السري بشكل صحيح. لم أجرب إعداد مسار على تطبيق Python للقيام بذلك بعد. التفاصيل حول كيفية التحقق من صحة “Secret” لـ webhook على WordPress موجودة هنا: wp-discourse-custom-webhook-request/wp-discourse-custom-webhook-request.php at master · scossar/wp-discourse-custom-webhook-request · GitHub.