Benutzer und Mitglieder
Ein Benutzer ist ein Zrzur-Konto, ein Mitglied ein Benutzer auf einem Server, mit Spitzname, Rollen und Timeout.
Was ein Bot über Menschen sieht
Ein Bot sieht, was Mitglieder desselben Servers sehen: Benutzernamen, Anzeigenamen, Avatar, Abzeichen, Status und das öffentliche Profil. Er sieht nie E-Mail-Adressen, Sitzungen, Einstellungen, Privatsphäre-Entscheidungen oder Freundschaften.
GET /users/{target}liefert einen Benutzer, den der Bot sehen kann (gemeinsamer Server oder Direktnachricht).GET /users/{target}/profilekann abgelehnt werden (403), wenn das Profil für den Bot nicht sichtbar ist.- Freunde und Blockierungen sind nur für Menschen. Jeder dieser Endpunkte lehnt Bots mit
IsBotab. officialkennzeichnet ein Konto, das Zrzur betreibt, undofficial_namesenthält seinen Namen pro Sprache (ar,en,de, mitdisplay_nameals Rückfall).official_botkennzeichnet einen Bot, den Zrzur selbst betreibt. Antworten, Reaktionen, Anpinnen und Melden lehnt ein offizielles Konto mit403 OfficialAccountab.
Grenzen der Privatsphäre
Menschen entscheiden, wer ihnen schreiben darf. Ein Bot ist nie ein Freund, also:
| Ihre Einstellung „Direktnachrichten“ | Kann der Bot eine Direktnachricht beginnen? |
|---|---|
| Alle | Ja |
| Gemeinsame (Standard: geteilter Server oder Gruppe) | Ja, solange der Bot einen Server mit ihnen teilt |
| Freunde | Nein |
Blockierte Benutzer bekommen nie Nachrichten eines Bots, und wer dem Bot zuerst geschrieben hat, kann immer eine Antwort bekommen. GET /users/{target}/dm kann gelingen, während das Senden mit 403 DirectMessagesRestricted oder Blocked abgelehnt wird. Wiederhole diese Fehler nicht: Poste stattdessen in einem Serverkanal, ohne private Details.
Gruppeneinladungen haben eine eigene Einstellung; Bots können gar keine Gruppen erstellen oder Leute hinzufügen.
Alterschecks für nicht jugendfreie Kanäle gelten nur für Menschen: Bots haben kein Alter und werden nicht geprüft. Nutze keinen Bot, um Mitgliedern Inhalte zu zeigen, deren Kanäle sie selbst nicht öffnen können.
Mitglieder
Mitglieder-Endpunkte funktionieren auf Servern, auf denen der Bot ist.
GET /servers/{target}/membersliefert alle Mitglieder und ihre Benutzer in einer Antwort. Nimm lieber die Mitgliederdaten ausReadyund aus Interaktionen: weniger Anfragen, und der Bucketserversist klein.PATCH /servers/{server_id}/members/{member_id}ändert Spitznamen, Rollen, Timeouts und Sprachstatus. Jede Änderung braucht ihre eigene Berechtigung, und das Ziel muss unter dem Bot stehen (und unter der Moderatorin, wenn dein Bot für sie handelt).- Die Ereignisse
ServerMemberJoin,ServerMemberUpdateundServerMemberLeavehalten einen Cache aktuell.
Referenz: Benutzer
GET /users/{target}
Fetch User. Retrieve a user's information.
Berechtigungen: User:Access · Ratenlimit: users, 20 / 10 s
PATCH /users/{target}
Edit User. Edit currently authenticated user.
Ratenlimit: user_edit, 2 / 10 s
DELETE /users/{target}/block
Unblock User. Unblock another user by their id.
Für Bots nicht verfügbar.
Ratenlimit: users, 20 / 10 s
PUT /users/{target}/block
Block User. Block another user by their id.
Für Bots nicht verfügbar.
Ratenlimit: users, 20 / 10 s
GET /users/{target}/default_avatar
Fetch Default Avatar. This returns a default avatar based on the given id.
Ratenlimit: default_avatar, 255 / 10 s
GET /users/{target}/dm
Open Direct Message. Open a DM with another user.
If the target is oneself, a saved messages channel is returned.
Fails with DirectMessagesRestricted when the other user's privacy settings don't let you start a conversation with them.
Berechtigungen: User:SendMessage, Channel:SendMessage · Ratenlimit: users, 20 / 10 s
GET /users/{target}/flags
Fetch User Flags. Retrieve a user's flags.
Ratenlimit: users, 20 / 10 s
DELETE /users/{target}/friend
Deny Friend Request / Remove Friend. Denies another user's friend request or removes an existing friend.
Für Bots nicht verfügbar.
Ratenlimit: users, 20 / 10 s
PUT /users/{target}/friend
Accept Friend Request. Accept another user's friend request.
Für Bots nicht verfügbar.
Ratenlimit: users, 20 / 10 s
GET /users/{target}/mutual
Fetch Mutual Friends, Servers, Groups and DMs. Retrieve a list of mutual friends, servers, groups and DMs with another user.
Berechtigungen: User:ViewProfile · Ratenlimit: users, 20 / 10 s
GET /users/{target}/profile
Fetch User Profile. Retrieve a user's profile data. Will fail if you do not have permission to access the other user's profile.
Berechtigungen: User:ViewProfile · Ratenlimit: users, 20 / 10 s
GET /users/@me
Fetch Self. Retrieve your user information.
Ratenlimit: users, 20 / 10 s
GET /users/@me/change-requests
Change requests. Changes to your account that Zrzur asked you to agree to and that are still waiting for your answer.
Ratenlimit: users, 20 / 10 s
POST /users/@me/change-requests/{id}
Answer a change request. Accept (the change is applied now) or decline (nothing changes).
Ratenlimit: users, 20 / 10 s
GET /users/@me/mentions
Fetch Mentions. Messages from the last 30 days that mention you: by name, by one of your roles, or with @everyone / @here, in channels you can see. Newest first. For people only: the whole messages and their authors would pass a bot's intents.
Für Bots nicht verfügbar.
Berechtigungen: Channel:ViewChannel · Ratenlimit: users, 20 / 10 s
GET /users/@me/privacy
Fetch Privacy Settings. Who can message you and who can add you to group chats.
Für Bots nicht verfügbar.
Ratenlimit: users, 20 / 10 s
PATCH /users/@me/privacy
Edit Privacy Settings. Change who can message you and who can add you to group chats. Fields left out stay the same.
Für Bots nicht verfügbar.
Ratenlimit: user_edit, 2 / 10 s
GET /users/dms
Fetch Direct Message Channels. This fetches your direct messages, including any DM and group DM conversations.
Ratenlimit: users, 20 / 10 s
POST /users/friend
Send Friend Request. Send a friend request to another user.
Für Bots nicht verfügbar.
Ratenlimit: users, 20 / 10 s
Referenz: Mitglieder
POST /servers/{server_id}/lobby/answers
Answer Lobby Question. Add the role attached to a public interest choice to the authenticated member. Existing roles are preserved; answering again is idempotent.
Ratenlimit: servers, 5 / 10 s
DELETE /servers/{server_id}/lobby/answers/{question}/{option}
Remove Lobby Answer. Take back an interest choice: removes the role of that configured answer from the authenticated member. Other roles stay; removing again is idempotent.
Ratenlimit: servers, 5 / 10 s
GET /servers/{server_id}/members/{member_id}
Fetch Member. Retrieve a member.
Ratenlimit: servers, 5 / 10 s
PATCH /servers/{server_id}/members/{member_id}
Edit Member. Edit a member by their id.
Berechtigungen: Channel:ChangeNickname, Channel:ManageNicknames, Channel:ChangeAvatar, Channel:RemoveAvatars, Channel:AssignRoles, Channel:TimeoutMembers, Channel:MuteMembers, Channel:DeafenMembers, Channel:MoveMembers, Channel:Connect, Channel:ManageChannel · Ratenlimit: servers, 5 / 10 s
GET /servers/{target}/invites
Fetch Invites. Fetch all server invites.
Berechtigungen: Channel:ManageServer · Ratenlimit: servers, 5 / 10 s
GET /servers/{target}/join_requests
Fetch Join Requests. Pending requests to join this server, oldest first.
Ratenlimit: servers, 5 / 10 s
POST /servers/{target}/join_requests/{applicant}/approve
Approve Join Request. Make the applicant a member. Fails if the request is no longer pending (already decided by someone else) or the person can't join (banned, server limit, age).
Ratenlimit: servers, 5 / 10 s
POST /servers/{target}/join_requests/{applicant}/reject
Reject Join Request.
Ratenlimit: servers, 5 / 10 s
DELETE /servers/{target}/join_requests/@me
Cancel Own Join Request.
Ratenlimit: servers, 5 / 10 s
GET /servers/{target}/join_requests/@me
Fetch Own Join Request. Where your request to join this server stands.
Ratenlimit: servers, 5 / 10 s
GET /servers/{target}/members
Fetch Members. Fetch server members, a page at a time (limit, after).
Ratenlimit: servers, 5 / 10 s
GET /servers/{target}/members_experimental_query
Query members by name. Query members by a given name, this API is not stable and will be removed in the future.
Ratenlimit: servers, 5 / 10 s
POST /servers/{target}/rules/accept
Accept the rules. Accept the server's rules (rules screening). Members who joined after screening was switched on can talk once they have accepted.
Ratenlimit: servers, 5 / 10 s