Lorsque j’exécute cet appel, Discourse me répond avec {locked: false}.
J’ai essayé de verrouiller la publication manuellement et d’inspecter l’appel API que le client Discourse effectue, et il semble très similaire à celui que je fais depuis mon application, à l’exception de la méthode d’authentification, peut-être.
Je ne suis pas sûr de ce qui se passe, des idées ?
L’API pour verrouiller un post est documentée ici Discourse API Docs mais oui, j’ai aussi essayé d’effectuer une ingénierie inverse de la manière dont le client Discourse le fait, et cela ressemble beaucoup à la façon dont je le fais depuis mon application.
Le code est
\n params[:locked] === \"true\" ? locker.lock : locker.unlock
\n
Ce qui semble faire une comparaison de chaîne de caractères.
\n
Cela signifie que vous devriez envoyer \"locked\": \"true\" et non \"locked\": true, et que la documentation ou le code devraient être mis à jour pour refléter ou modifier ce comportement.
\n
Le navigateur n’envoie pas de requête JSON, il envoie Content-Type: application/x-www-form-urlencoded qui interprétera le paramètre comme une chaîne de caractères, et c’est pourquoi cela fonctionne dans le navigateur.