According to a reply by @Falco on my post, there’s a way to set users to watch categories using the API. I’ve spent hours searching the web and combing through the API documentation but I cannot find this call.
Does anyone know what API call could be used to set a user to watch a specific category?
You can search for "reverse engineer api " for tips on how to figure out the API call. Also, there is a plugin that will make people in a certain group follow a set of categories.
Thanks for the reply @pfaffman. Are you suggesting the API documentation is incomplete and I need to reverse engineer the API code to find the undocumented API call?
I’m sure @Osama’s method works, but setting user watches via the category seemed a bit weird to me. The following sets the watch list directly against the user (This is via python requests, but shows what is required).
DISCOURSE_URL - domain, including http(s)
username - user to change
DISCOURSE_API_KEY - api key generated by, and associated with a user
DISCOURSE_API_USERNAME - user who the key is associated with
watch_category - a list of categories the user should be watching
Je ne suis pas sûr que ce code puisse réaliser ce que je cherche, mais…
J’aimerais ajouter un lien hypertexte avec un paramètre d’URL qui, lorsqu’un utilisateur clique sur le lien, le place en mode « En train de regarder » / « Suivi » / « Normal » / « Muets » pour une catégorie donnée.
Un cas d’usage concret serait, au lieu de dire aux gens de « Visitez la catégorie… et cliquez sur l’icône de cloche pour choisir _____ », de pouvoir dire quelque chose comme…
CLIQUEZ ICI si vous souhaitez être notifié chaque fois qu’un nouveau message est ajouté à ce forum.
Ensuite, lorsque l’utilisateur clique sur ce lien hypertexte, il est abonné au niveau défini dans le paramètre de l’URL.
Je pense que ce serait relativement simple à implémenter sous forme de plugin ou de composant de thème, une sorte d’entité intégrable capable d’effectuer ces actions pour vous. Le problème avec le code AJAX publié ci-dessus, c’est que vous envoyez la clé API globale de tous les utilisateurs au client. C’est une très mauvaise idée.
Le problème que vous rencontrerez en créant un lien, comme l’a suggéré l’auteur du sujet initial, est que l’appel API nécessite une action REST POST, alors que les liens ne peuvent déclencher qu’une action REST GET.