Redirecionamentos abertos tendem a deixar as pessoas nervosas, neste caso, se você adicionar, digamos, nextcloud, isso significa que as pessoas poderão usar uma URL no nextcloud para gerar uma chave no discourse e, em seguida, redirecionar de volta para o nextcloud.
Na Etapa 6, a qual chamada de API você está se referindo especificamente?
Ou se mais alguém souber, por favor, responda!
As chamadas de API referidas na etapa seis são quaisquer chamadas que você desejar fazer. Isso se refere apenas às chamadas que realizam a ação que você realmente deseja fazer com o site do Discourse.
No meu caso, eu tinha um aplicativo separado que interagia com um site do Discourse - fazendo coisas como criar posts no site do Discourse com base na ação que um usuário tomava no aplicativo separado. O aplicativo fazia login do usuário, o usuário fazia algumas coisas e, em seguida, o aplicativo fazia chamadas de API POST e PUT para criar/editar posts do Discourse daquele usuário.
Entendi. No meu caso, eu só quero fazer com que um usuário faça login no meu site, realize a autorização do Discourse, redirecione de volta e, em seguida, meu site possa simplesmente ler o nome de usuário, e-mail, avatar, ID, etc., e criar um novo usuário em nosso site. @JQ331
Então você está no lugar errado, você não pode usar as chaves da API do usuário para isso.
Em vez disso, você precisará configurar o Discourse como o provedor DiscourseConnect e seu site como um cliente DiscourseConnect. Veja Use Discourse as an identity provider (SSO, DiscourseConnect)
Estou certo ao dizer que para algo assim precisarei de acesso à chave secreta do site?
Não existe uma “chave secreta” única, mas você precisará de acesso de administrador ao Discourse para configurá-la.
Olá, tentei implementar esta chave de API de usuário, mas parece que ela tem um limitador de taxa de API. Recebi 429 após algumas chamadas de API. Existe alguma configuração para isso? Eu uso hospedagem paga.
Aqui há mais informações sobre limites de taxa.
Se você estiver hospedando com a Communiteq, entre em contato com nossa central de suporte através do seu painel de controle para configurar isso.
Olá @RGJ , obrigado pela resposta. Minha empresa tem o plano Standard e Business, mas não consigo ver a central de suporte no painel de controle. Em vez disso, enviei um e-mail para team@discourse.org, está correto?
Se você estiver hospedado conosco na Discourse (em vez de com o @RGJ na Communiteq), essa é realmente a maneira correta de entrar em contato com nossa equipe de suporte.
![]()
Olá!
Estou escrevendo um aplicativo que consome esta API.
Existe alguma maneira de obter as informações do usuário (principalmente o nome de usuário) a partir disso?
Ou preciso solicitar o nome de usuário manualmente e depois solicitá-lo mais tarde?
Bem-vindo, @gilice.
Você não quer dizer que está consumindo a API para obter chaves de API, mas que está tentando fazer algo com os usuários?
Isso pode ajudar Engenharia reversa da API do Discourse.
Mas se você está tentando obter o nome de usuário de um usuário, uma maneira de fazer isso é pesquisar o endereço de e-mail na rota admin/users.
Ajudaria se você dissesse o que está tentando fazer.
Olá! Obrigado pela resposta, talvez eu devesse ter formulado melhor.
A pergunta que eu queria fazer: eu consigo obter a chave de API pertencente a um usuário. Então, consigo obter o perfil do usuário (nome de usuário, foto de perfil, etc.) sem pedir o nome de usuário dele e usando o método getUser?
Não está claro como isso funcionaria. De onde você quer obter a chave de API? Como você pode ver no fluxo, o usuário precisa fazer login para obter uma chave em primeiro lugar, e eles precisam de suas informações normais de login para isso. Você pode explicar melhor o que você está tentando fazer?
Olá a todos,
Na minha aplicação, estou usando chaves de API de usuário para obter algumas das funcionalidades do Discourse. Por engano, autorizei o login (usando a API /user-api-key/new) com a conta errada do Discourse.
Revoguei o acesso ao aplicativo da conta errada do Discourse. No entanto, quando tento autorizar usando a conta correta do Discourse, recebo um erro. Ao verificar os logs, encontrei o seguinte erro:
ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR: duplicate key value violates unique constraint “index_user_api_keys_on_client_id” DETAIL: Key (client_id)=
Com base no erro, presumo que não podemos associar 2 contas de usuário para o mesmo ID de cliente.
Existe alguma maneira de superar esse problema?
Além disso, existe alguma API para atualizar o client_id de uma chave de API de usuário, mesmo quando a chave de API é revogada?
Obrigado!
O que exatamente isso significa?
Estou escrevendo um aplicativo que solicita dados em nome de um usuário via chave de API do usuário. O objetivo é evitar problemas de limitação de taxa. Quando exatamente o aplicativo terá problemas de limitação de taxa?
Eu acho que você está procurando algo assim:
Sim! Era isso que eu queria. Muito obrigado!!!
Podemos obter uma especificação OpenAPI para as chaves de API do usuário? Ou considere adicioná-las à documentação de especificação existente.
GitHub - discourse/discourse_api_docs: Discourse API Documentation
Para desenvolvedores downstream, preferimos usar OpenAPI para gerar a interface e a API de que precisamos.