$data) { foreach($data['timeline']['events'] as $event_id=>$event) { if($event['type'] == "m.room.message") { $sender = $event['sender']; $content = "not text"; if($event['content']['msgtype'] == "m.text") $content = $event['content']['body']; echo "$sender $room_id $content\n"; } } } } $new_tracking_data = $messages['next_batch']; file_put_contents($tracking_file, $new_tracking_data); } function get_new_events($since) { global $homeserver,$access_token; // timeout means the server will wait and only respond after 30 seconds, // however if a message is returned before that time, it will return immediately $url = "https://$homeserver/_matrix/client/r0/sync?access_token=$access_token&timeout=30000"; if(!empty($since)) $url .= "&since=$since"; $data = json_decode(file_get_contents($url), true); return $data; } ?>