7 #define LOGIN_REQUEST_SIZE 1024
\r
8 #define LOGIN_RESPONSE_SIZE 1024
\r
9 #define LOGIN_URL "/_matrix/client/v3/login"
\r
14 MatrixClient * client,
\r
15 const char * server)
\r
26 // https://spec.matrix.org/v1.6/client-server-api/#post_matrixclientv3login
\r
28 MatrixClientLoginPassword(
\r
29 MatrixClient * client,
\r
30 const char * username,
\r
31 const char * password,
\r
32 const char * displayName)
\r
34 static char requestBuffer[LOGIN_REQUEST_SIZE];
\r
36 mjson_snprintf(requestBuffer, LOGIN_REQUEST_SIZE,
\r
38 "\"type\": \"m.login.password\","
\r
40 "\"type\": \"m.id.user\","
\r
43 "\"password\": \"%s\","
\r
44 "\"initial_device_display_name\": \"%s\""
\r
50 static char responseBuffer[LOGIN_RESPONSE_SIZE];
\r
52 MatrixHttpPost(client,
\r
55 responseBuffer, LOGIN_RESPONSE_SIZE);
\r
57 int responseLen = strlen(responseBuffer);
\r
62 mjson_get_string(responseBuffer, responseLen,
\r
64 client->accessTokenBuffer, ACCESS_TOKEN_SIZE);
\r
65 mjson_get_string(responseBuffer, responseLen,
\r
67 client->deviceIdBuffer, DEVICE_ID_SIZE);
\r
68 mjson_get_string(responseBuffer, responseLen,
\r
70 client->expireMsBuffer, EXPIRE_MS_SIZE);
\r
71 mjson_get_string(responseBuffer, responseLen,
\r
73 client->refreshTokenBuffer, REFRESH_TOKEN_SIZE);
\r