In qualità di moderatore, vorrei utilizzare l’API per un forum di discussione. Normalmente era attiva e sono riuscito a ottenere una chiave API. Ho utilizzato questo script:
Sono riuscito a recuperare una chiave lunga 32 caratteri (è corretto?), e nelle impostazioni di sicurezza del mio account, l’app mostra queste autorizzazioni:
Leggi tutto
Scrivi tutto
Aggiornamenti in tempo reale
Notifiche push a servizi esterni
Leggi e cancella notifiche
Leggi informazioni sulla sessione utente
Crea un token di accesso una tantum
Sembra abbastanza buono. Tuttavia, quando provo ad accedere tramite uno script con:
from pydiscourse import DiscourseClient
client = DiscourseClient(
'https://forum.example.com',
api_username='tflidd',
api_key='388b79103056fede1d3223dae032df99')
client.user("tflidd")
È una libreria Python, quindi suppongo che dovrebbe funzionare. La chiave API ha questo formato specifico, non è la chiave effettiva. Ricevo l’errore che l’username o la chiave API non sono validi.
Devo usare il mio username o il nome dell’app?
La chiave API ha almeno il formato corretto, forse la decrittazione di qualcosa è andata storta?
Se uso curl come qui (Discourse-user-notes API - #4 by codetricity):
curl https://forum.example.com/t/95783.json\ -H 'Api-Key: 388b79103056fede1d3223dae032df99'\ -H 'Api-Username: tflidd'
Ricevo anche un errore:
{"errors":["You are not permitted to view the requested resource. The API username or key is invalid."],"error_type":"invalid_access"}
Se apro lo stesso URL con il json nel mio browser dove sono loggato, il browser web mostra l’oggetto json corretto. Quindi l’argomento esiste e ho i permessi per accedervi (questo era anche uno pubblico).
Sono solo un moderatore, senza accesso diretto all’amministratore. Potrei chiedere maggiori informazioni dai log, se avete indicazioni su cosa cercare.
Nel caso in cui sia rilevante, la versione installata è: 3.2.0.beta4-dev