Marcando una publicación con API rota

He marcado ciertas publicaciones usando la API y Python. Esto ha funcionado durante varios años, hasta una actualización reciente a 3.2.0.beta4-dev. Ahora obtengo DiscourseClientError: No tienes permiso para ver el recurso solicitado. Mi clave API sigue siendo válida y no ha sido revocada. La ingeniería inversa al marcar una publicación manualmente muestra que la carga útil para marcar no ha cambiado (excepto quizás el valor de flag_topic, pero eso no parece importar). ¿Alguna idea?

       self._post(
            "/post_actions",
            id=post_id,
            post_action_type_id=7, # marcarlo
            message=msg,
            flag_topic=True
        )

Un cambio reciente en la señalización fue el paso a una configuración habilitada para grupos en lugar de una de nivel de confianza (grupos permitidos para marcar publicaciones), ¿podría estar eso conectado de alguna manera?

1 me gusta

Mis ajustes:

Mi clave de API:

Entonces, ¿quizás “Todos los usuarios” ya no tienen permiso para marcar, y necesito una nueva clave de API para un “Usuario único” que sí tenga permiso (yo mismo, por ejemplo)? No me queda claro qué significa “Todos los usuarios”. ¿TL0?

Teóricamente, dado que el valor predeterminado de TL1 se ha mantenido igual durante el cambio de configuración, habría pensado que los mismos permisos para la clave de API seguirían funcionando, aunque como ahora se basa en el grupo en lugar del nivel de confianza, puede haber algo más que esté afectando. Hubo un informe de que la visibilidad del grupo era un factor en otra peculiaridad que surgió para una de las otras configuraciones que se ha movido al formato permitido por grupo. Por casualidad, ¿ha cambiado la visibilidad de su grupo TL1 en algún momento?

1 me gusta

No, todos los grupos son visibles.


También lo he intentado con una nueva clave de API, esta vez para un Usuario Único “discobot” (mi webhook se ejecuta como usuario discobot) y, dado que discobot es TL0, cambié flag post allowed groups a TL0. Sigue apareciendo el mismo error: No tiene permiso para ver el recurso solicitado.

Ya funciona después de aumentar @discobot a TL1. No estoy seguro de cuál es la conclusión, solo asegúrate de que tu usuario cumpla con la configuración basada en niveles de confianza y grupos. Aun así, no puedo explicar por qué solía funcionar y luego se rompió.

1 me gusta

Hmm. No estoy seguro :thinking: Me alegro de que ahora funcione. :slight_smile: He contactado al desarrollador que hizo el cambio para ver si hay algo más, pero es posible que esperemos más informes para profundizar ahora que el tuyo está funcionando de nuevo.

Bueno, funcionó por un corto tiempo, quizás un día. Luego @discobot pierde su capacidad de marcar de nuevo. Para ser claros, esto no tiene nada que ver con la API; si me hago pasar por @discobot y navego por temas, el icono de marcar no está disponible. Si luego cambio el nivel de confianza de @discobot, incluso a un nivel inferior, los iconos de marcar aparecen de nuevo. Intentaré caracterizarlo mejor, pero algo parece estar mal.

Además, no sé si el problema es exclusivo de @discobot. Solo uso @discobot porque es el usuario que uno esperaría que marcara automáticamente las publicaciones. Y funcionó durante años.

Creo que es posible que necesites consultar con un usuario diferente. Hay algo de magia que elimina a Discobot y System de los grupos de nivel de confianza, por lo que cualquier cosa basada en grupos de nivel de confianza que utilice esos usuarios te dará resultados extraños (actualmente se vuelven a añadir cada vez que actualizas tu foro y luego se eliminan de nuevo poco después).

Si pudieras crear un usuario de prueba específico para probar esto, los resultados serán mucho más claros.

1 me gusta

OK, he creado un usuario específico para realizar el marcado a través de la API. Ya veremos qué tal funciona…

1 me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.