Come ha notato Jay, una richiesta POST autenticata a /export_csv/export_entity.json può essere utilizzata per generare l’archivio. Per farlo, è necessario utilizzare una chiave API globale per tutti gli utenti. Imposta il nome utente API della richiesta sul nome utente dell’utente per cui desideri creare l’archivio. Devi fornire un parametro entity nella richiesta. Il parametro entity deve essere impostato su user_archive. Con questo approccio, verrà generata una notifica per l’utente. Per la maggior parte degli utenti, ciò invierà anche un’e-mail contenente un link di download, ma non penso che si possa fare affidamento su questo: dipende da come l’utente ha configurato le proprie preferenze di posta elettronica.
Ecco un esempio di richiesta curl per generare l’archivio. Ho sostituito $api_key con una chiave API globale per tutti gli utenti nella richiesta:
curl -X POST "http://localhost:3000/export_csv/export_entity.json" -H "Api-Username: Ben" -H "Api-Key: $api_key" -F "entity=user_archive"
Non sono sicuro che esista un modo per generare l’archivio in modo da poterlo condividere senza che l’utente debba accedere alla notifica e fare clic sul suo link di download. Forse potrebbe essere sviluppata una query di Data Explorer che restituisce le informazioni. Potresti quindi eseguire la query di Data Explorer tramite l’API. Lo svantaggio di questo approccio è che se la query restituisce più di 10.000 righe di dati, dovrai effettuare più richieste per ottenere tutti i dati. Per ulteriori dettagli sull’approccio di Data Explorer, consulta: Come eseguire query di Data Explorer con l’API di Discourse.