Difference between revisions of "Web API"
Jump to navigation
Jump to search
m (Edited GetConnectionAndGameParams responses) |
(Added MailAccount) |
||
Line 38: | Line 38: | ||
*** name: the client you are using. Known values: TmForever | *** name: the client you are using. Known values: TmForever | ||
*** version: Version of the client | *** version: Version of the client | ||
− | *** distro: Unknown. Set to MOLUX | + | *** distro: Unknown. Set to MOLUX or TAHOR |
*** lang: lang of the client, as ISO 639-1 | *** lang: lang of the client, as ISO 639-1 | ||
** author | ** author | ||
Line 94: | Line 94: | ||
=== CheckLogin === | === CheckLogin === | ||
− | |||
Used to check if login is already used for account creation. | Used to check if login is already used for account creation. | ||
Line 102: | Line 101: | ||
==== Response ==== | ==== Response ==== | ||
− | |||
*;e | *;e | ||
− | : Set to 1 if login is used, otherwise 0. | + | :Set to 1 if login is used, otherwise 0. |
*;p | *;p | ||
: ?. Set to 0. | : ?. Set to 0. | ||
+ | |||
+ | === MailAccount === | ||
+ | Used to make the server send a password recovery email. | ||
+ | |||
+ | ==== Parameters ==== | ||
+ | *;login | ||
+ | :Player login | ||
+ | |||
+ | ==== Response ==== | ||
+ | No content is returned. | ||
+ | |||
[[Category:Specifications]] | [[Category:Specifications]] |
Revision as of 08:35, 12 May 2019
Basic concepts
TrackMania uses a XML-RPC-like API to authenticate players, load server lists, load rankings, etc... Here is some documentation about what has been reversed engineered. A lot is still left to be documented.
The game sends unencrypted POST requests to
- http://game.trackmaniaforever.com/online_game/request.php
- http://game2.trackmaniaforever.com/online_game/request.php
to communicate with the API.
It sets two headers: User-Agent: GameBox
and Accept: */*
, and uses the following format as request body :
<?xml version="1.0" encoding="UTF-8"?> <root> <game> <name>TmForever</name> <version>2.11.16</version> <distro>MOLUX</distro> <lang>fr</lang> </game> <author> <login/> <session/> </author> <request> <name>[...]</name> <params> [...] </params> </request> </root>
Here is a description of the parameters :
- root
- game
- name: the client you are using. Known values: TmForever
- version: Version of the client
- distro: Unknown. Set to MOLUX or TAHOR
- lang: lang of the client, as ISO 639-1
- author
- login: is not set when calling GetConnectionAndGameParams
- session: obtained by calling GetConnectionAndGameParams. Unset when calling that function.
- request:
- name: Name of the requested function.
- param: Parameters for the call.
- game
The server responds with XML, which has obfurscated names:
<?xml version="1.0" encoding="UTF-8"?> <r> <r> <n>[...]</n> <c> [...] </c> </r> <e>execution time : 0.0010 s</e> </r>
Here is a description of the return:
- r
- r
- n: The name of the called function
- c: The return data
- e: A string giving the execution time.
- r
Functions calls
GetConnectionAndGameParams
Parameters
- dedicated
- Set to 0 with TMF. Purpose is unknown. Maybe for servers.
- download
- Max P2P download speed, as set in game config, in B/s
- upload
- Max P2P upload speed, as set in game config, in B/s
Response
- a
- b : Full game name (Set to "Trackmania United Forever for TMNF and TMUF)
- c : Set to "game.trackmaniaforever.com" or "game2.trackmaniaforever.com". Server the client should use to continue talking with the API.
- d : ?. Set to "online_game"
- e : Set to 443. Maybe HTTPS port?
- f : Set to 80. Maybe HTTP port?
- g : Set to "World". Maybe base region?
- h : ?. Set to 1
- i : ?. Set to 1
CheckLogin
Used to check if login is already used for account creation.
Parameters
- l
- Player login.
Response
- e
- Set to 1 if login is used, otherwise 0.
- p
- ?. Set to 0.
MailAccount
Used to make the server send a password recovery email.
Parameters
- login
- Player login
Response
No content is returned.