Ryan_NR
(Ryan)
Setembro 30, 2019, 2:34pm
1
Olá pessoal — sou um usuário administrador da nossa instância do Discourse, mas não consigo consultar certos endpoints.
Às vezes, recebo isso:
Em outras ocasiões, sou solicitado com a mensagem: Você precisa estar logado para fazer isso.
Confirmei que a chave de API que estou usando está vinculada ao meu usuário administrador e que o API_Username é meu próprio nome de usuário. Vocês têm alguma dica sobre isso?
Minha suposição é que a chamada não está enviando as credenciais corretamente?
blake
(Blake Erickson)
Outubro 1, 2019, 1:14pm
3
Você pode tentar passar as credenciais da API no cabeçalho da solicitação em vez dos parâmetros de consulta. Deve haver um exemplo no tópico da documentação da API.
Ryan_NR
(Ryan)
Outubro 1, 2019, 1:14pm
4
Pode ser — não tenho certeza — A configuração que tenho é apenas a coleção do Postman baixada daqui:
API do Discourse
Consulte o site da Documentação da API do Discourse para obter informações detalhadas:
https://docs.discourse.org
Autenticação
As solicitações de API devem usar autenticação baseada em cabeçalho HTTP. Passe sua Api-Key e Api-Username como cabeçalhos HTTP. A autenticação via parâmetros de consulta ou corpo da solicitação não é suportada (isso foi removido em abril de 2020). Consulte o exemplo de solicitação cURL abaixo.
Os únicos endpoints de API que co…
Eu apenas alterei a Chave da API, o Nome de Usuário e a URL Base.
Essa coleção não é mais válida?
Ryan_NR
(Ryan)
Outubro 1, 2019, 1:15pm
5
Obrigado, @blake . Vou tentar.
blake
(Blake Erickson)
Outubro 1, 2019, 1:17pm
6
Sim, algumas delas provavelmente estão desatualizadas.
Ryan_NR
(Ryan)
Outubro 1, 2019, 1:21pm
7
@blake - Passar as credenciais como um cabeçalho de solicitação está retornando o mesmo:
{
"errors": [
"Você não tem permissão para visualizar o recurso solicitado."
],
"error_type": "invalid_access"
}
blake
(Blake Erickson)
Outubro 1, 2019, 1:52pm
8
Consegui fazer a solicitação da API de membros do grupo funcionar no Meta com este comando curl:
curl -i -sS -X GET "https://meta.discourse.org/groups/my-private-group/members.json" \
-H "Content-Type: multipart/form-data;" \
-H "Api-Key: key" \
-H "Api-Username: username"
Talvez você possa usar a opção “copiar como comando curl” no Postman e comparar.