Je travaille avec l’API Discourse.
Le site sur lequel je travaille récupère toutes les données via l’API Discourse. Je rencontre un problème : comme je ne consulte pas réellement les sujets et les notifications, et que j’obtiens uniquement les données par l’API, mes sujets et notifications ne sont pas marqués comme consultés.
Comment puis-je résoudre ce problème ?
joebuhlig
(Joe Buhlig)
Février 21, 2019, 3: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 « J'aime »
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)
Février 21, 2019, 6:37
6
4 « J'aime »
joebuhlig
(Joe Buhlig)
Février 21, 2019, 6:42
7
You could start with following the code back to the controller. Everything you need to know about the method is there.
1 « J'aime »
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)
Février 21, 2019, 7: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 « J'aime »
This is what I got from the network tab
What is the the number beside the timings variable?
ryze1
Novembre 30, 2020, 1:28
11
Salut Edwin, as-tu compris ce qu’était cette variable timings et comment la définir ? J’ai le même problème.
Salut Edwin, as-tu trouvé comment obtenir les données ? les horaires et topic_time ? ou comment le faire fonctionner ? J’ai le même problème. Merci !
manojm321
(Manoj Kumar Manikchand)
Mars 4, 2023, 5:52
13
quelqu’un peut-il m’expliquer la valeur de timings et de topic_time ? s’agit-il de secondes passées sur le sujet ?