Search code examples
matrixmatrix-synapse

Matrix Synapse server: Filtering Events for messages only (m.room.message), can't get it to work


I call the Synapse method https://spec.matrix.org/v1.3/client-server-api/#get_matrixclientv3roomsroomidmessages and want to get only the messages, and I am using specific filter but I get also other events than messages

Steps to reproduce:

  • call the Synapse API method
http://synapse:8008/_matrix/client/v3/rooms/!EoDQvlifoBggEjcJeT:matrix.connectme.anais.tech/messages?dir=b&filter=%7B%22type%22%3A%22m.room.message%22%7D&user_id=@ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech
  • get back answer
 

    {
       type: 'm.room.message',
       room_id: '!EoDQvlifoBggEjcJeT:matrix.connectme.anais.tech',
       sender: '@ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech',
       content: { body: 'Hello', msgtype: 'm.text' },
       origin_server_ts: 1660060721216,
       unsigned: { age: 88017942 },
       event_id: '$8GII9nJiCKPpPm7DqviMRxq7zsbPNieH8R-uJlCFQ3Q',
       user_id: '@ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech',
       age: 88017942
     },
     {
       type: 'm.room.member',
       room_id: '!EoDQvlifoBggEjcJeT:matrix.connectme.anais.tech',
       sender: '@ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech',
       content: {
         reason: 'To chat',
         membership: 'join',
         displayname: 'sofia@coppensint.com'
       },
       state_key: '@ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech',
       origin_server_ts: 1660060721176,
       unsigned: { age: 88017982 },
       event_id: '$tc0PAcZmdkh4tt0WxNkEmg5B9wTBk1FBMRud7TEMCa8',
       user_id: 'ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech',
       age: 88017982
     },
     {
       type: 'm.room.topic',
       room_id: '!EoDQvlifoBggEjcJeT:matrix.connectme.anais.tech',
       sender: '@ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech',
       content: {
         topic: 'Topic Room 1 to 1 ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech to ge1jpwwv9dtu2wrvfdm2:matrix.connectme.anais.tech'
       },
       state_key: '',
       origin_server_ts: 1660060721126,
       unsigned: { age: 88018032 },
       event_id: '$aOyVdr9P8_cfNHKDdPKumLOrp-kQK3AWc4dJqdTuEQg',
       user_id: '@ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech',
       age: 88018032
     },

..................
  • observe there are also other event types besides m.room.message

  • Homeserver: local homeserver

  • Synapse Version: {"server_version":"1.61.1","python_version":"3.9.13"}

  • Installation Method: Docker (matrixdotorg/synapse)

  • Platform: Ubuntu running docker, and in docker Synapse is running.

Relevant log output:


     {
       type: 'm.room.message',
       room_id: '!EoDQvlifoBggEjcJeT:matrix.connectme.anais.tech',
       sender: '@ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech',
       content: { body: 'Hello', msgtype: 'm.text' },
       origin_server_ts: 1660060721216,
       unsigned: { age: 88017942 },
       event_id: '$8GII9nJiCKPpPm7DqviMRxq7zsbPNieH8R-uJlCFQ3Q',
       user_id: '@ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech',
       age: 88017942
     },
     {
       type: 'm.room.member',
       room_id: '!EoDQvlifoBggEjcJeT:matrix.connectme.anais.tech',
       sender: '@ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech',
       content: {
         reason: 'To chat',
         membership: 'join',
         displayname: 'sofia@coppensint.com'
       },
       state_key: '@ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech',
       origin_server_ts: 1660060721176,
       unsigned: { age: 88017982 },
       event_id: '$tc0PAcZmdkh4tt0WxNkEmg5B9wTBk1FBMRud7TEMCa8',
       user_id: 'ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech',
       age: 88017982
     },
     {
       type: 'm.room.topic',
       room_id: '!EoDQvlifoBggEjcJeT:matrix.connectme.anais.tech',
       sender: '@ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech',
       content: {
         topic: 'Topic Room 1 to 1 ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech to ge1jpwwv9dtu2wrvfdm2:matrix.connectme.anais.tech'
       },
       state_key: '',
       origin_server_ts: 1660060721126,
       unsigned: { age: 88018032 },
       event_id: '$aOyVdr9P8_cfNHKDdPKumLOrp-kQK3AWc4dJqdTuEQg',
       user_id: '@ge1jpwwv9dtu2wrvfdm:matrix.connectme.anais.tech',
       age: 88018032
     },

Solution

    • the filter parameter supports a key types of type string[];
    • example:
    
       "&filter=" + encodeURIComponent(JSON.stringify(
           {
             types: ["m.room.message"],
           }
       ))