Gerei uma chave de API emitida por administrador com as escopos write, read e read lists. No entanto, ao tentar usar a chave (adicionando-a no cabeçalho Api-Key) para acessar o endpoint {{localhost}}/posts.json, recebo o seguinte erro:
"errors": [
"Você não tem permissão para visualizar o recurso solicitado. O nome de usuário ou a chave da API é inválido."
],
"error_type": "invalid_access"
}
Por outro lado, gerar uma chave global me dá acesso ao endpoint. Qual é o escopo correto (mínimo) para ler {{localhost}}/posts.json?
Ainda não testei isso, mas acho que o que você está vendo é o comportamento esperado. Você pode clicar no botão de âncora exibido ao lado de cada escopo de chave de API para ver quais caminhos o escopo permite acessar. Você verá que o escopo read só se aplica a rotas que começam com /t. O escopo read lists dá acesso às listas de tópicos do Discourse. Não há um escopo que permita especificamente acessar /posts.json, então parece que você terá que usar uma chave global para isso.
Estou me perguntando se faria sentido adicionar /posts.json ao escopo read.
Oi, Simon! Obrigado pela resposta e pela explicação. Para o meu caso de uso, precisarei ler as postagens de /posts.json, mas, ao mesmo tempo, gostaria de ser o menos intrusivo possível e solicitar apenas acesso de leitura. Existe alguma solução alternativa?
Se você estiver consultando apenas postagens públicas, talvez seja possível fazer uma solicitação de API não autenticada para /posts.json. Se o seu site for privado ou as postagens estiverem em categorias protegidas, acredito que a única maneira de recuperar as postagens atualmente seja com uma chave de API global.