Afin de respecter nos obligations légales, nous devons pouvoir permettre aux utilisateurs de télécharger l’intégralité de leur historique de publications (et non des extraits) via l’API Discourse, afin que ces données puissent être incluses lorsqu’un utilisateur formule une demande d’accès aux données (DSAR) directement auprès de notre site web ou de notre équipe juridique (pour qu’ils obtiennent un enregistrement complet de leurs données Last.fm et de leurs publications Discourse). Est-ce actuellement possible ? Et si oui, quelle est la méthode appropriée pour procéder ?
Nous avons essayé de le faire en utilisant l’endpoint « get user actions » (Discourse API Docs), mais il semble que cela ne renvoie qu’un enregistrement partiel d’extraits, et non les publications complètes.
Je sais que les utilisateurs peuvent déjà télécharger leurs données directement depuis la page des paramètres d’activité sur Discourse, mais je crains que cela ne suffise pas à satisfaire notre équipe juridique () – ils insistent pour que les données soient téléchargées depuis notre site web. Des idées ? Je crains que nous ne soyons contraints de quitter notre plan d’hébergement si nous ne parvenons pas à régler ce problème.
Eh bien, vous pourriez théoriquement le faire via l’API (voir Comment faire de l’ingénierie inverse de l’API Discourse), mais il n’existe aucun moyen simple de contourner l’exigence selon laquelle ils doivent cliquer sur le lien de validation par e-mail qui les protège contre le téléchargement de leurs données par un tiers.
Comme l’a noté Jay, une requête POST authentifiée vers /export_csv/export_entity.json peut être utilisée pour générer l’archive. Pour ce faire, vous devez utiliser une clé API globale « Tous les utilisateurs ». Définissez le nom d’utilisateur de l’API de la requête sur le nom d’utilisateur de l’utilisateur pour lequel vous souhaitez créer l’archive. Vous devez fournir un paramètre entity avec la requête. Le paramètre entity doit être défini sur user_archive. Avec cette approche, une notification sera générée pour l’utilisateur. Pour la plupart des utilisateurs, cela enverra également un e-mail contenant un lien de téléchargement, mais je ne pense pas que cela puisse être garanti : cela dépend de la façon dont l’utilisateur a configuré ses préférences e-mail.
Voici un exemple de requête curl pour générer l’archive. J’ai remplacé $api_key par une clé API globale « Tous les utilisateurs » dans la requête :
Je ne sais pas s’il existe un moyen de générer l’archive de manière à pouvoir la partager sans que l’utilisateur n’ait à accéder à la notification et à cliquer sur son lien de téléchargement. Peut-être qu’une requête Data Explorer pourrait être développée pour retourner les informations. Vous pourriez ensuite exécuter la requête Data Explorer via l’API. L’inconvénient de cette approche est que si plus de 10 000 lignes de données sont renvoyées par la requête, vous devrez effectuer plusieurs requêtes pour obtenir les données. Pour plus de détails sur l’approche Data Explorer, consultez : Comment exécuter des requêtes Data Explorer avec l’API Discourse.
Merci, je vais transmettre ces informations à notre équipe de développement — espérons que nous pourrons résoudre ce problème sans trop de difficultés.