This commit is contained in:
erikjohnston 2022-09-07 09:55:45 +00:00
parent 45fcf7532c
commit d82a3a2909
4 changed files with 256 additions and 2 deletions

View file

@ -504,6 +504,133 @@ If the room does not define a type, the value will be <code>null</code>.</li>
]
}
</code></pre>
<h1 id="room-messages-api"><a class="header" href="#room-messages-api">Room Messages API</a></h1>
<p>The Room Messages admin API allows server admins to get all messages
sent to a room in a given timeframe. There are various parameters available
that allow for filtering and ordering the returned list. This API supports pagination.</p>
<p>To use it, you will need to authenticate by providing an <code>access_token</code>
for a server admin: see <a href="../usage/administration/admin_api">Admin API</a>.</p>
<p>This endpoint mirrors the <a href="https://spec.matrix.org/v1.1/client-server-api/#get_matrixclientv3roomsroomidmessages">Matrix Spec defined Messages API</a>.</p>
<p>The API is:</p>
<pre><code>GET /_synapse/admin/v1/rooms/&lt;room_id&gt;/messages
</code></pre>
<p><strong>Parameters</strong></p>
<p>The following path parameters are required:</p>
<ul>
<li><code>room_id</code> - The ID of the room you wish you fetch messages from.</li>
</ul>
<p>The following query parameters are available:</p>
<ul>
<li><code>from</code> (required) - The token to start returning events from. This token can be obtained from a prev_batch
or next_batch token returned by the /sync endpoint, or from an end token returned by a previous request to this endpoint.</li>
<li><code>to</code> - The token to spot returning events at.</li>
<li><code>limit</code> - The maximum number of events to return. Defaults to <code>10</code>.</li>
<li><code>filter</code> - A JSON RoomEventFilter to filter returned events with.</li>
<li><code>dir</code> - The direction to return events from. Either <code>f</code> for forwards or <code>b</code> for backwards. Setting
this value to <code>b</code> will reverse the above sort order. Defaults to <code>f</code>.</li>
</ul>
<p><strong>Response</strong></p>
<p>The following fields are possible in the JSON response body:</p>
<ul>
<li><code>chunk</code> - A list of room events. The order depends on the dir parameter.
Note that an empty chunk does not necessarily imply that no more events are available. Clients should continue to paginate until no end property is returned.</li>
<li><code>end</code> - A token corresponding to the end of chunk. This token can be passed back to this endpoint to request further events.
If no further events are available, this property is omitted from the response.</li>
<li><code>start</code> - A token corresponding to the start of chunk.</li>
<li><code>state</code> - A list of state events relevant to showing the chunk.</li>
</ul>
<p><strong>Example</strong></p>
<p>For more details on each chunk, read <a href="https://spec.matrix.org/v1.1/client-server-api/#get_matrixclientv3roomsroomidmessages">the Matrix specification</a>.</p>
<pre><code class="language-json">{
&quot;chunk&quot;: [
{
&quot;content&quot;: {
&quot;body&quot;: &quot;This is an example text message&quot;,
&quot;format&quot;: &quot;org.matrix.custom.html&quot;,
&quot;formatted_body&quot;: &quot;&lt;b&gt;This is an example text message&lt;/b&gt;&quot;,
&quot;msgtype&quot;: &quot;m.text&quot;
},
&quot;event_id&quot;: &quot;$143273582443PhrSn:example.org&quot;,
&quot;origin_server_ts&quot;: 1432735824653,
&quot;room_id&quot;: &quot;!636q39766251:example.com&quot;,
&quot;sender&quot;: &quot;@example:example.org&quot;,
&quot;type&quot;: &quot;m.room.message&quot;,
&quot;unsigned&quot;: {
&quot;age&quot;: 1234
}
},
{
&quot;content&quot;: {
&quot;name&quot;: &quot;The room name&quot;
},
&quot;event_id&quot;: &quot;$143273582443PhrSn:example.org&quot;,
&quot;origin_server_ts&quot;: 1432735824653,
&quot;room_id&quot;: &quot;!636q39766251:example.com&quot;,
&quot;sender&quot;: &quot;@example:example.org&quot;,
&quot;state_key&quot;: &quot;&quot;,
&quot;type&quot;: &quot;m.room.name&quot;,
&quot;unsigned&quot;: {
&quot;age&quot;: 1234
}
},
{
&quot;content&quot;: {
&quot;body&quot;: &quot;Gangnam Style&quot;,
&quot;info&quot;: {
&quot;duration&quot;: 2140786,
&quot;h&quot;: 320,
&quot;mimetype&quot;: &quot;video/mp4&quot;,
&quot;size&quot;: 1563685,
&quot;thumbnail_info&quot;: {
&quot;h&quot;: 300,
&quot;mimetype&quot;: &quot;image/jpeg&quot;,
&quot;size&quot;: 46144,
&quot;w&quot;: 300
},
&quot;thumbnail_url&quot;: &quot;mxc://example.org/FHyPlCeYUSFFxlgbQYZmoEoe&quot;,
&quot;w&quot;: 480
},
&quot;msgtype&quot;: &quot;m.video&quot;,
&quot;url&quot;: &quot;mxc://example.org/a526eYUSFFxlgbQYZmo442&quot;
},
&quot;event_id&quot;: &quot;$143273582443PhrSn:example.org&quot;,
&quot;origin_server_ts&quot;: 1432735824653,
&quot;room_id&quot;: &quot;!636q39766251:example.com&quot;,
&quot;sender&quot;: &quot;@example:example.org&quot;,
&quot;type&quot;: &quot;m.room.message&quot;,
&quot;unsigned&quot;: {
&quot;age&quot;: 1234
}
}
],
&quot;end&quot;: &quot;t47409-4357353_219380_26003_2265&quot;,
&quot;start&quot;: &quot;t47429-4392820_219380_26003_2265&quot;
}
</code></pre>
<h1 id="room-timestamp-to-event-api"><a class="header" href="#room-timestamp-to-event-api">Room Timestamp to Event API</a></h1>
<p>The Room Timestamp to Event API endpoint fetches the <code>event_id</code> of the closest event to the given
timestamp (<code>ts</code> query parameter) in the given direction (<code>dir</code> query parameter).</p>
<p>Useful for cases like jump to date so you can start paginating messages from
a given date in the archive.</p>
<p>The API is:</p>
<pre><code> GET /_synapse/admin/v1/rooms/&lt;room_id&gt;/timestamp_to_event
</code></pre>
<p><strong>Parameters</strong></p>
<p>The following path parameters are required:</p>
<ul>
<li><code>room_id</code> - The ID of the room you wish to check.</li>
</ul>
<p>The following query parameters are available:</p>
<ul>
<li><code>ts</code> - a timestamp in milliseconds where we will find the closest event in
the given direction.</li>
<li><code>dir</code> - can be <code>f</code> or <code>b</code> to indicate forwards and backwards in time from the
given timestamp. Defaults to <code>f</code>.</li>
</ul>
<p><strong>Response</strong></p>
<ul>
<li><code>event_id</code> - converted from timestamp</li>
</ul>
<h1 id="block-room-api"><a class="header" href="#block-room-api">Block Room API</a></h1>
<p>The Block Room admin API allows server admins to block and unblock rooms,
and query to see if a given room is blocked.

View file

@ -11571,6 +11571,133 @@ If the room does not define a type, the value will be <code>null</code>.</li>
]
}
</code></pre>
<h1 id="room-messages-api"><a class="header" href="#room-messages-api">Room Messages API</a></h1>
<p>The Room Messages admin API allows server admins to get all messages
sent to a room in a given timeframe. There are various parameters available
that allow for filtering and ordering the returned list. This API supports pagination.</p>
<p>To use it, you will need to authenticate by providing an <code>access_token</code>
for a server admin: see <a href="admin_api/../usage/administration/admin_api">Admin API</a>.</p>
<p>This endpoint mirrors the <a href="https://spec.matrix.org/v1.1/client-server-api/#get_matrixclientv3roomsroomidmessages">Matrix Spec defined Messages API</a>.</p>
<p>The API is:</p>
<pre><code>GET /_synapse/admin/v1/rooms/&lt;room_id&gt;/messages
</code></pre>
<p><strong>Parameters</strong></p>
<p>The following path parameters are required:</p>
<ul>
<li><code>room_id</code> - The ID of the room you wish you fetch messages from.</li>
</ul>
<p>The following query parameters are available:</p>
<ul>
<li><code>from</code> (required) - The token to start returning events from. This token can be obtained from a prev_batch
or next_batch token returned by the /sync endpoint, or from an end token returned by a previous request to this endpoint.</li>
<li><code>to</code> - The token to spot returning events at.</li>
<li><code>limit</code> - The maximum number of events to return. Defaults to <code>10</code>.</li>
<li><code>filter</code> - A JSON RoomEventFilter to filter returned events with.</li>
<li><code>dir</code> - The direction to return events from. Either <code>f</code> for forwards or <code>b</code> for backwards. Setting
this value to <code>b</code> will reverse the above sort order. Defaults to <code>f</code>.</li>
</ul>
<p><strong>Response</strong></p>
<p>The following fields are possible in the JSON response body:</p>
<ul>
<li><code>chunk</code> - A list of room events. The order depends on the dir parameter.
Note that an empty chunk does not necessarily imply that no more events are available. Clients should continue to paginate until no end property is returned.</li>
<li><code>end</code> - A token corresponding to the end of chunk. This token can be passed back to this endpoint to request further events.
If no further events are available, this property is omitted from the response.</li>
<li><code>start</code> - A token corresponding to the start of chunk.</li>
<li><code>state</code> - A list of state events relevant to showing the chunk.</li>
</ul>
<p><strong>Example</strong></p>
<p>For more details on each chunk, read <a href="https://spec.matrix.org/v1.1/client-server-api/#get_matrixclientv3roomsroomidmessages">the Matrix specification</a>.</p>
<pre><code class="language-json">{
&quot;chunk&quot;: [
{
&quot;content&quot;: {
&quot;body&quot;: &quot;This is an example text message&quot;,
&quot;format&quot;: &quot;org.matrix.custom.html&quot;,
&quot;formatted_body&quot;: &quot;&lt;b&gt;This is an example text message&lt;/b&gt;&quot;,
&quot;msgtype&quot;: &quot;m.text&quot;
},
&quot;event_id&quot;: &quot;$143273582443PhrSn:example.org&quot;,
&quot;origin_server_ts&quot;: 1432735824653,
&quot;room_id&quot;: &quot;!636q39766251:example.com&quot;,
&quot;sender&quot;: &quot;@example:example.org&quot;,
&quot;type&quot;: &quot;m.room.message&quot;,
&quot;unsigned&quot;: {
&quot;age&quot;: 1234
}
},
{
&quot;content&quot;: {
&quot;name&quot;: &quot;The room name&quot;
},
&quot;event_id&quot;: &quot;$143273582443PhrSn:example.org&quot;,
&quot;origin_server_ts&quot;: 1432735824653,
&quot;room_id&quot;: &quot;!636q39766251:example.com&quot;,
&quot;sender&quot;: &quot;@example:example.org&quot;,
&quot;state_key&quot;: &quot;&quot;,
&quot;type&quot;: &quot;m.room.name&quot;,
&quot;unsigned&quot;: {
&quot;age&quot;: 1234
}
},
{
&quot;content&quot;: {
&quot;body&quot;: &quot;Gangnam Style&quot;,
&quot;info&quot;: {
&quot;duration&quot;: 2140786,
&quot;h&quot;: 320,
&quot;mimetype&quot;: &quot;video/mp4&quot;,
&quot;size&quot;: 1563685,
&quot;thumbnail_info&quot;: {
&quot;h&quot;: 300,
&quot;mimetype&quot;: &quot;image/jpeg&quot;,
&quot;size&quot;: 46144,
&quot;w&quot;: 300
},
&quot;thumbnail_url&quot;: &quot;mxc://example.org/FHyPlCeYUSFFxlgbQYZmoEoe&quot;,
&quot;w&quot;: 480
},
&quot;msgtype&quot;: &quot;m.video&quot;,
&quot;url&quot;: &quot;mxc://example.org/a526eYUSFFxlgbQYZmo442&quot;
},
&quot;event_id&quot;: &quot;$143273582443PhrSn:example.org&quot;,
&quot;origin_server_ts&quot;: 1432735824653,
&quot;room_id&quot;: &quot;!636q39766251:example.com&quot;,
&quot;sender&quot;: &quot;@example:example.org&quot;,
&quot;type&quot;: &quot;m.room.message&quot;,
&quot;unsigned&quot;: {
&quot;age&quot;: 1234
}
}
],
&quot;end&quot;: &quot;t47409-4357353_219380_26003_2265&quot;,
&quot;start&quot;: &quot;t47429-4392820_219380_26003_2265&quot;
}
</code></pre>
<h1 id="room-timestamp-to-event-api"><a class="header" href="#room-timestamp-to-event-api">Room Timestamp to Event API</a></h1>
<p>The Room Timestamp to Event API endpoint fetches the <code>event_id</code> of the closest event to the given
timestamp (<code>ts</code> query parameter) in the given direction (<code>dir</code> query parameter).</p>
<p>Useful for cases like jump to date so you can start paginating messages from
a given date in the archive.</p>
<p>The API is:</p>
<pre><code> GET /_synapse/admin/v1/rooms/&lt;room_id&gt;/timestamp_to_event
</code></pre>
<p><strong>Parameters</strong></p>
<p>The following path parameters are required:</p>
<ul>
<li><code>room_id</code> - The ID of the room you wish to check.</li>
</ul>
<p>The following query parameters are available:</p>
<ul>
<li><code>ts</code> - a timestamp in milliseconds where we will find the closest event in
the given direction.</li>
<li><code>dir</code> - can be <code>f</code> or <code>b</code> to indicate forwards and backwards in time from the
given timestamp. Defaults to <code>f</code>.</li>
</ul>
<p><strong>Response</strong></p>
<ul>
<li><code>event_id</code> - converted from timestamp</li>
</ul>
<h1 id="block-room-api"><a class="header" href="#block-room-api">Block Room API</a></h1>
<p>The Block Room admin API allows server admins to block and unblock rooms,
and query to see if a given room is blocked.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long