E-Mail-Adresse eines Benutzers über API abrufen

Gibt es eine Möglichkeit, über die API die aktuelle E-Mail-Adresse eines Benutzers abzurufen?

Unser Anwendungsfall sieht wie folgt aus:

Wir ermöglichen es Benutzern, ihre Discourse-Informationen über unsere Website zu verwalten. Im Allgemeinen wird Discourse nur als Mailingliste genutzt, und fast alle Benutzer besuchen die eigentliche Discourse-Website nie. Ich möchte dem Benutzer die aktuelle E-Mail-Adresse anzeigen können, die Discourse verwendet, damit er sehen kann, ob sie geändert werden muss.

Ich kann dies für alle anderen Felder außer der E-Mail-Adresse durchführen.

Früher gab es einen API-Endpunkt users/{username}/emails, der jedoch scheinbar nicht mehr verfügbar ist.

Hallo,

GET /users/:username.json

zeigt die E-Mail-Adresse in zwei Fällen an:

  • Die Benutzer-ID des API-Schlüssel-Inhabers ist identisch mit der Benutzer-ID des angeforderten Benutzernamens.
  • Der API-Schlüssel-Inhaber ist Mitarbeiter und der angeforderte Benutzer ist gestaffelt.

Weitere Informationen dazu im Code:

Soweit ich weiß, hat sich dieser Codepfad kürzlich nicht geändert.

Ja, aber das hilft mir nicht. Alle Benutzer sind bereits aktiv, und der Benutzer-API-Schlüssel wird nicht übereinstimmen.

Diese Anfrage funktioniert bei mir:

curl "http://example.com/users/joffreyjaffeux/emails.json" \
     -H 'Api-Username: joffreyjaffeux' \
     -H 'Api-Key: xxx' \
     -H 'Content-Type: application/json; charset=utf-8' \

Aber funktioniert es, wenn die URL http://example.com/users/paulapostolos/emails.json lautet?

Ja, das sollte für dich selbst und andere Benutzer funktionieren, solange dies zutrifft:

  def can_check_emails?(user)
    is_admin? || (is_staff? && SiteSetting.moderators_view_emails)
  end

Beachte, dass dies ein Protokoll-Eintrag für eine Mitarbeiteraktion auslöst.

Das hat funktioniert… Ich hatte etwas alten Code, der früher funktionierte (Version 1.4 oder so), der die Anfrage als PUT ohne .json am Ende hatte. Ich habe sie zu GET geändert und die URL angepasst, und jetzt funktioniert es.

Danke für die Hilfe!