libQuotient
A Qt library for building matrix clients
Loading...
Searching...
No Matches
third_party_membership.h
Go to the documentation of this file.
1// THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN
2
3#pragma once
4
5#include <Quotient/jobs/basejob.h>
6
7namespace Quotient {
8
9//! \brief Invite a user to participate in a particular room.
10//!
11//! *Note that there are two forms of this API, which are documented separately.
12//! This version of the API does not require that the inviter know the Matrix
13//! identifier of the invitee, and instead relies on third-party identifiers.
14//! The homeserver uses an identity server to perform the mapping from
15//! third-party identifier to a Matrix identifier. The other is documented in the*
16//! [joining rooms section](/client-server-api/#post_matrixclientv3roomsroomidinvite).
17//!
18//! This API invites a user to participate in a particular room.
19//! They do not start participating in the room until they actually join the
20//! room.
21//!
22//! Only users currently in a particular room can invite other users to
23//! join that room.
24//!
25//! If the identity server did know the Matrix user identifier for the
26//! third-party identifier, the homeserver will append a `m.room.member`
27//! event to the room.
28//!
29//! If the identity server does not know a Matrix user identifier for the
30//! passed third-party identifier, the homeserver will issue an invitation
31//! which can be accepted upon providing proof of ownership of the third-
32//! party identifier. This is achieved by the identity server generating a
33//! token, which it gives to the inviting homeserver. The homeserver will
34//! add an `m.room.third_party_invite` event into the graph for the room,
35//! containing that token.
36//!
37//! When the invitee binds the invited third-party identifier to a Matrix
38//! user ID, the identity server will give the user a list of pending
39//! invitations, each containing:
40//!
41//! - The room ID to which they were invited
42//!
43//! - The token given to the homeserver
44//!
45//! - A signature of the token, signed with the identity server's private key
46//!
47//! - The matrix user ID who invited them to the room
48//!
49//! If a token is requested from the identity server, the homeserver will
50//! append a `m.room.third_party_invite` event to the room.
52public:
53 //! \param roomId
54 //! The room identifier (not alias) to which to invite the user.
55 //!
56 //! \param idServer
57 //! The hostname+port of the identity server which should be used for third-party identifier
58 //! lookups.
59 //!
60 //! \param idAccessToken
61 //! An access token previously registered with the identity server. Servers
62 //! can treat this as optional to distinguish between r0.5-compatible clients
63 //! and this specification version.
64 //!
65 //! \param medium
66 //! The kind of address being passed in the address field, for example
67 //! `email` (see [the list of recognised values](/appendices/#3pid-types)).
68 //!
69 //! \param address
70 //! The invitee's third-party identifier.
72 const QString& idAccessToken, const QString& medium,
73 const QString& address);
74};
75
76} // namespace Quotient
Invite a user to participate in a particular room.
#define QUOTIENT_API