Ich arbeite mit der Discourse-API. Die Website, an der ich arbeite, bezieht alle Daten über die Discourse-API. Das Problem ist, dass meine Themen und Benachrichtigungen nicht als gelesen markiert werden, da ich sie nicht direkt anschaue, sondern nur Daten über die API abrufe.
Wie sollte ich dieses Problem lösen?
joebuhlig
(Joe Buhlig)
21. Februar 2019 um 15:36
2
If I’m following, you need to make an API call to this endpoint:
put "t/:id" => "topics#update"
delete "t/:id" => "topics#destroy"
put "t/:id/archive-message" => "topics#archive_message"
put "t/:id/move-to-inbox" => "topics#move_to_inbox"
put "t/:id/convert-topic/:type" => "topics#convert_topic"
put "t/:id/publish" => "topics#publish"
put "t/:id/shared-draft" => "topics#update_shared_draft"
put "t/:id/reset-bump-date" => "topics#reset_bump_date"
put "topics/bulk"
put "topics/reset-new" => 'topics#reset_new'
post "topics/timings"
get 'topics/similar_to' => 'similar_topics#index'
resources :similar_topics
get "topics/feature_stats"
scope "/topics", username: RouteFormat.username do
get "created-by/:username" => "list#topics_by", as: "topics_by", constraints: { format: /(json|html)/ }, defaults: { format: :json }
get "private-messages/:username" => "list#private_messages", as: "topics_private_messages", constraints: { format: /(json|html)/ }, defaults: { format: :json }
get "private-messages-sent/:username" => "list#private_messages_sent", as: "topics_private_messages_sent", constraints: { format: /(json|html)/ }, defaults: { format: :json }
3 „Gefällt mir“
Thanks for the reply.
How would this post request help me?
It will mark the posts as “viewed”, which is what you wrote in the first post.
joebuhlig:
topics/timings
How should the api request look like ?
something like this?
{{base_url}}/t/timings/topic_Id.json?
Falco
(Falco)
21. Februar 2019 um 18:37
6
4 „Gefällt mir“
joebuhlig
(Joe Buhlig)
21. Februar 2019 um 18:42
7
You could start with following the code back to the controller. Everything you need to know about the method is there.
1 „Gefällt mir“
I already tried do the reverse engineering.
The only response i get from the network tab is
{{baseurl}} + /t/3295.json?track_visit=true&forceLoad=true&_=1550774445459
Falco
(Falco)
21. Februar 2019 um 19:01
9
You gotta read it carefully.
Right clicking a request to timings and selecting copy a cURL will give you all you need for a request using the cURL syntax (the standard format for most people):
curl 'https://meta.discourse.org/topics/timings' \
-H 'Accept: */*' \
-H 'Accept-Language: en-US,en;q=0.5' \
-H 'X-CSRF-Token: LONGTOKENHERE' \
-H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
-H 'X-SILENCE-LOGGER: true' \
-H 'Discourse-Logged-In: true' \
-H 'Discourse-Visible: true' \
-H 'X-Requested-With: XMLHttpRequest' \
--data 'timings%5B3%5D=1019&timings%5B4%5D=1019&topic_time=1019&topic_id=108685' \
--compressed
6 „Gefällt mir“
This is what I got from the network tab
What is the the number beside the timings variable?
ryze1
30. November 2020 um 13:28
11
Hi Edwin, hast du herausgefunden, was diese Variable timings ist und wie man sie setzt? Ich habe das gleiche Problem.
Hallo Edwin, hast du herausgefunden, wie man die Daten bekommt? Timings und topic_time? Oder wie man es zum Laufen bringt? Ich habe das gleiche Problem. Danke!
manojm321
(Manoj Kumar Manikchand)
4. März 2023 um 17:52
13
Kann mir bitte jemand erklären, was die Werte für timings und topic_time bedeuten? Sind das die Sekunden, die für das Thema aufgewendet wurden?