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:
Discourse API
Please view the Discourse API Documentation site for detailed info:
https://docs.discourse.org
Authentication
API requests must use HTTP header based authentication. Pass your Api-Key and Api-Username as HTTP headers. Authentication via query parameters or request body is not supported (this was removed in April 2020). Please see the example cURL request below.
The only API endpoints that continue to support credentials in query parameters are requests to…
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.