Ich möchte eine Aktion ausführen, wenn es ein neues Thema gibt. Daher habe ich einen Webhook für Topic Events aktiviert. Ich überprüfe die Header, um zu sehen, ob es sich um ein topic_created-Ereignis handelt, und wenn ja, führe ich eine Aktion aus.
Dies funktionierte viele Monate lang, schlägt aber jetzt manchmal fehl, möglicherweise nach einem Upgrade letzte Woche. Jetzt bekomme ich manchmal topic_created in den Headern, aber das Thema ist eigentlich alt und jemand hat einfach auf das Thema geantwortet.
Mein Code:
event_type = request.headers['X-Discourse-Event-Type']
event = request.headers['X-Discourse-Event']
if event_type == 'topic' and event == 'topic_created':
take_action()
Beispiel-Payload von einer Anfrage, die event == ‘topic_created’ in den Headern hatte. Beachten Sie, dass das angebliche “neue” Thema tatsächlich 2017 erstellt wurde und 306 Antworten hat.
payload
{
'bookmarked': False,
'word_count': 272108,
'visible': True,
'like_count': 567,
'highest_post_number': 758,
'has_deleted': True,
'tags_descriptions': {},
'deleted_at': None,
'archetype': 'regular',
'id': 1357,
'pinned_until': None,
'archived': False,
'user_id': 4,
'title': 'Tax Time! Discussions of Taxes and Accountants',
'last_posted_at': '2022-01-05T01:41:26.000Z',
'tags': [],
'created_by': {
'username': 'redacted',
'avatar_template': '/user_avatar/forum.redacted.com/redacted/{size}/45_2.png',
'id': 4,
'name': 'redacted'
},
'pinned': False,
'queued_posts_count': 0,
'closed': False,
'unpinned': None,
'participant_count': 162,
'views': 19557,
'pinned_at': None,
'last_poster': {
'username': 'redacted',
'avatar_template': '/letter_avatar_proxy/v4/letter/j/45deac/{size}.png',
'id': 142,
'name': 'JohnJacobs'
},
'pending_posts': [],
'posts_count': 744,
'slug': 'tax-time-discussions-of-taxes-and-accountants',
'thumbnails': None,
'created_at': '2017-01-21T00:25:01.000Z',
'deleted_by': None,
'featured_link': None,
'reply_count': 306,
'pinned_globally': False,
'category_id': 16,
'fancy_title': 'Tax Time! Discussions of Taxes and Accountants'
}