Integration documentation for webchat and GFAVIP ecosystem apps
| Setting | Value |
|---|---|
| Homeserver URL | https://chat.gfavip.com |
| Server Name | gfavip.com |
| Matrix Protocol | r0.0.1 through v1.11 |
Your app should have the user's GFAVIP session token in the format:
gfavip-session-{randomHex}
POST/api/auth/matrix-token
Headers:
Authorization: Bearer gfavip-session-{your-token}
Content-Type: application/json
Body: (empty)
{
"accessToken": "syt_c3NvX..._1A2B3C",
"userId": "@sso_{uuid}:gfavip.com",
"homeServer": "gfavip.com"
}
import * as sdk from 'matrix-js-sdk';
const matrixClient = sdk.createClient({
baseUrl: "https://chat.gfavip.com",
accessToken: response.accessToken,
userId: response.userId
});
await matrixClient.startClient();
Health check endpoint
{"status": "healthy", "service": "gfavip-matrix-server"}
Server configuration status
{"gfavip_sso_configured": true, "mode": "production"}
Matrix protocol version discovery
Matrix server discovery
const room = await client.createRoom({
is_direct: true,
invite: [otherUserId],
preset: 'trusted_private_chat' // Auto-joins creator
});
// Ensure you're joined
await client.joinRoom(room.room_id);
// Use getMembers() to include invited members
const members = room.getMembers();
const otherMembers = members.filter(m => m.userId !== myUserId);
const roomName = otherMembers[0]?.name || 'New conversation';
The room creator isn't properly joined. Use preset: 'trusted_private_chat' or call joinRoom() after creation.
Use room.getMembers() instead of room.getJoinedMembers() to include invited members.
These are normal. The Matrix SDK tries to get a cached filter first (returns 404), then creates a new one. This is expected behavior.
gfavip-session-{randomHex} (256-bit random)Last updated: December 2025