Denunciando uma postagem com a API quebrada

Eu marco certas postagens usando a API e Python. Isso funcionou por vários anos, até uma atualização recente para 3.2.0.beta4-dev. Agora recebo DiscourseClientError: Você não tem permissão para visualizar o recurso solicitado. Minha chave de API ainda é válida e não foi revogada. A engenharia reversa, marcando uma postagem manualmente, mostra que a carga útil para marcar não mudou (exceto talvez o valor de flag_topic, mas isso não parece importar). Alguma ideia?

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

Uma alteração recente na sinalização foi a mudança para uma configuração habilitada para grupo em vez de uma de nível de confiança (grupos permitidos para sinalizar postagens), se isso pudesse ser conectado de alguma forma?

1 curtida

Minhas configurações:

Minha chave de API:

Então, talvez “Todos os Usuários” não tenha mais permissão para sinalizar, e eu precise de uma nova chave de API para um “Usuário Único” que tenha permissão (eu mesmo, por exemplo)? Não está claro para mim o que “Todos os Usuários” significa. TL0?

Teoricamente, como o padrão do TL1 permaneceu o mesmo durante a troca de configurações, eu teria pensado que as mesmas permissões para a chave da API ainda funcionariam, embora, como agora é baseado em grupo em vez de nível de confiança, pode haver algo mais em efeito. Houve um relato da visibilidade do grupo ser um fator em outra peculiaridade que surgiu para uma das outras configurações que foi movida para o formato permitido por grupo. Por acaso, você alterou a visibilidade do seu grupo TL1 em algum momento?

1 curtida

Não, todos os grupos estão visíveis.


Também tentei com uma nova chave de API, desta vez para um Usuário Único “discobot” (meu webhook é executado como usuário discobot) e como o discobot é TL0, alterei flag post allowed groups para TL0. Ainda o mesmo erro - Você não tem permissão para visualizar o recurso solicitado.

Está funcionando agora depois de aumentar o @discobot para TL1. Não tenho certeza qual é a conclusão - apenas certifique-se de que seu usuário atenda às configurações de nível de confiança e baseadas em grupos. Mesmo assim, não consigo explicar por que funcionava e depois parou de funcionar.

1 curtida

Hmm. Não tenho certeza :thinking: Ainda bem que está funcionando agora. :slight_smile: Avisei o desenvolvedor que fez a alteração para ver se há mais alguma coisa, mas podemos esperar por mais relatos para investigar mais a fundo agora que o seu está funcionando novamente.

Bem, funcionou por um curto período - talvez um dia. Então @discobot perde sua capacidade de sinalizar novamente. Para ser claro, isso não tem nada a ver com a API - se eu me passar por @discobot e navegar pelos tópicos, o ícone de sinalização não estará disponível. Se eu mudar o nível de confiança do @discobot - mesmo para um nível mais baixo - os ícones de sinalização aparecem novamente. Tentarei caracterizá-lo melhor, mas algo parece errado.

Além disso, não sei se o problema é exclusivo do @discobot. Eu apenas uso @discobot porque ele é o usuário que você naturalmente esperaria que sinalizasse automaticamente as postagens. E funcionou por anos.

Acho que você pode precisar verificar com um usuário diferente. Existe alguma mágica que remove o Discobot e o System dos grupos de nível de confiança, então qualquer coisa baseada em grupos de nível de confiança que use esses usuários lhe dará resultados estranhos (eles atualmente são readicionados toda vez que você atualiza seu fórum e, em seguida, são removidos novamente logo depois).

Se você pudesse criar um usuário de teste específico para experimentar isso, os resultados serão muito mais claros.

1 curtida

OK, criei um usuário específico para fazer o sinalização via API. Vamos ver como vai…

1 curtida

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