Specifiche delle chiavi API utente

Le redirezioni aperte tendono a mettere le persone a disagio, in questo caso se aggiungi ad esempio nextcloud, significa che le persone saranno in grado di utilizzare un URL su nextcloud per generare una chiave su discourse e quindi reindirizzare nuovamente a nextcloud.

3 Mi Piace

Al punto 6, a quale chiamata API ti riferisci specificamente?
O se qualcun altro lo sa, per favore rispondi!

Le chiamate API a cui si fa riferimento nel passaggio sei sono qualsiasi chiamata tu voglia effettuare. Si riferisce solo alle chiamate che fanno ciò che vuoi effettivamente fare con il sito di discourse.

Nel mio caso, avevo un’app separata che interagiva con un sito di discourse, facendo cose come creare post sul sito di discourse in base all’azione che un utente intraprendeva nell’app separata. L’app effettuava il login dell’utente, l’utente faceva alcune cose, e poi l’app effettuava chiamate API POST e PUT per creare/modificare post di discourse da quell’utente.

Capisco. Nel mio caso, voglio solo fare in modo che un utente acceda al mio sito web, esegua l’autorizzazione Discourse, quindi reindirizzi indietro e quindi il mio sito web possa semplicemente leggere il loro nome utente, email, avatar, ID, ecc. e creare un nuovo utente sul nostro sito. @JQ331

Allora sei nel posto sbagliato, non puoi usare le chiavi API utente per questo.

Invece, dovrai configurare Discourse come provider DiscourseConnect e il tuo sito web come client DiscourseConnect. Vedi Use Discourse as an identity provider (SSO, DiscourseConnect)

1 Mi Piace

Ho ragione nel dire che per qualcosa del genere avrò bisogno dell’accesso alla chiave segreta del sito?

Non esiste una “chiave segreta” ma avrai bisogno dell’accesso amministrativo a Discourse per poterla configurare.

Ciao, ho provato a implementare questa chiave API utente, ma sembra che abbia un limitatore di frequenza API. Ho ricevuto 429 dopo alcune chiamate API. Ci sono configurazioni per questo? Uso l’hosting a pagamento.

Qui trovi maggiori informazioni sui limiti di frequenza.

Se stai ospitando con Communiteq, contatta il nostro desk di supporto tramite il tuo pannello di controllo per configurarlo.

Ciao @RGJ , grazie per la risposta. La mia azienda ha il piano Standard e Business ma non vedo l’assistenza nel pannello di controllo. Invece ho inviato un’email a team@discourse.org è corretto?

1 Mi Piace

Se sei ospitato con noi su Discourse (invece che con @RGJ su Communiteq), questo è effettivamente il modo corretto per contattare il nostro team di supporto. :+1: :slightly_smiling_face:

1 Mi Piace

Ciao!
Sto scrivendo un’applicazione che utilizza questa API.
C’è un modo per ottenere le informazioni dell’utente (principalmente il nome utente) da qui?
O devo chiedere manualmente il nome utente e poi richiederlo in seguito?

Benvenuto, @gilice.

Non intendi che stai consumando l’API per ottenere le chiavi API, ma che stai cercando di fare qualcosa con gli utenti?

Questo potrebbe aiutarti Ingegneria inversa dell’API di Discourse.

Ma se stai cercando di ottenere il nome utente di un utente, un modo per farlo è cercare l’indirizzo email nella route admin/users.

Sarebbe utile se dicessi cosa stai cercando di fare.

Ehi! Grazie per la risposta, forse avrei dovuto formulare meglio.
La domanda che volevo fare: posso ottenere la chiave API appartenente a un utente. Quindi, posso ottenere il profilo dell’utente (nome utente, immagine del profilo, ecc.) senza chiedere il suo nome utente e utilizzando il metodo getUser?

Non mi è chiaro come funzionerebbe. Da dove vuoi ottenere la chiave API? Come puoi vedere nel flusso, l’utente deve prima accedere per ottenere una chiave e per farlo ha bisogno delle sue normali informazioni di accesso. Puoi spiegare meglio cosa stai cercando di fare?

1 Mi Piace

Ciao a tutti,

Nella mia applicazione, sto utilizzando le chiavi API utente per ottenere alcune delle funzionalità di Discourse. Ho autorizzato per errore l’accesso (utilizzando l’API /user-api-key/new) con l’account Discourse sbagliato.

Ho revocato l’accesso all’app dall’account Discourse sbagliato. Tuttavia, quando tento di autorizzare utilizzando l’account Discourse corretto, ricevo un errore. Quando ho controllato i log, ho trovato il seguente errore:

ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR: duplicate key value violates unique constraint “index_user_api_keys_on_client_id” DETAIL: Key (client_id)=

Sulla base dell’errore, presumo che non possiamo associare 2 account utente allo stesso client_id.

C’è un modo per superare questo problema?

Inoltre, esiste un’API per aggiornare il client_id di una chiave API utente anche quando la chiave API è revocata?

Grazie!

1 Mi Piace

Cosa significa esattamente?

Sto scrivendo un’applicazione che richiede dati per conto di un utente tramite una chiave API utente. L’obiettivo è evitare problemi di limitazione della frequenza. Quando esattamente l’app riscontra problemi di limitazione della frequenza?

Penso che tu stia cercando qualcosa del genere:

3 Mi Piace

Sì! Era quello che volevo. Grazie mille!!!

2 Mi Piace

Possiamo ottenere una specifica OpenAPI per le chiavi API utente? O considerare di aggiungerle alla documentazione delle specifiche esistenti.

GitHub - discourse/discourse_api_docs: Discourse API Documentation

Per gli sviluppatori downstream, preferiamo utilizzare OpenAPI per generare l’interfaccia e le API di cui abbiamo bisogno.