Difference between revisions of "Web API"
Jump to navigation
Jump to search
(Formatting.) |
(Added auth and Disconnect) |
||
| Line 29: | Line 29: | ||
</params> | </params> | ||
</request> | </request> | ||
| + | <auth> | ||
| + | <value>[...]</value> | ||
| + | </auth> | ||
</root> | </root> | ||
</pre> | </pre> | ||
| Line 46: | Line 49: | ||
*** '''name''' Name of the requested function. | *** '''name''' Name of the requested function. | ||
*** '''param''' Parameters for the call. | *** '''param''' Parameters for the call. | ||
| + | ** '''auth''' ''Optional. Only seen with Disconnect'' | ||
| + | *** '''value''' Looks like an auth ticket. | ||
The server responds with XML, which has obfurscated names: | The server responds with XML, which has obfurscated names: | ||
| Line 75: | Line 80: | ||
''First request sent by client.'' | ''First request sent by client.'' | ||
{|class="wikitable" | {|class="wikitable" | ||
| − | ! | + | ! Session required? |
! Parameters | ! Parameters | ||
! Response | ! Response | ||
| Line 99: | Line 104: | ||
''Used to check if login is already used for account creation.'' | ''Used to check if login is already used for account creation.'' | ||
{|class="wikitable" | {|class="wikitable" | ||
| − | ! | + | ! Session required? |
! Parameters | ! Parameters | ||
! Response | ! Response | ||
| Line 114: | Line 119: | ||
''Used to make the server send a password recovery email.'' | ''Used to make the server send a password recovery email.'' | ||
{|class="wikitable" | {|class="wikitable" | ||
| − | ! | + | ! Session required? |
! Parameters | ! Parameters | ||
! Response | ! Response | ||
| Line 122: | Line 127: | ||
* '''login''' Player login | * '''login''' Player login | ||
| | | | ||
| − | '' | + | ''Empty response'' |
| + | |} | ||
| + | |||
| + | === Disconnect === | ||
| + | ''Used to disconnect (Duh).'' | ||
| + | {|class="wikitable" | ||
| + | ! Session required? | ||
| + | ! Parameters | ||
| + | ! Response | ||
| + | |- | ||
| + | | Yes | ||
| + | | | ||
| + | ''Empty parameters'' | ||
| + | | | ||
| + | ''Empty response'' | ||
|} | |} | ||
[[Category:Specifications]] | [[Category:Specifications]] | ||
Revision as of 09:54, 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>
<auth>
<value>[...]</value>
</auth>
</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 is not set when calling GetConnectionAndGameParams
- request
- name Name of the requested function.
- param Parameters for the call.
- auth Optional. Only seen with Disconnect
- value Looks like an auth ticket.
- 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
First request sent by client.
| Session required? | Parameters | Response |
|---|---|---|
| No |
|
|
CheckLogin
Used to check if login is already used for account creation.
| Session required? | Parameters | Response |
|---|---|---|
| No |
|
|
MailAccount
Used to make the server send a password recovery email.
| Session required? | Parameters | Response |
|---|---|---|
| No |
|
Empty response |
Disconnect
Used to disconnect (Duh).
| Session required? | Parameters | Response |
|---|---|---|
| Yes |
Empty parameters |
Empty response |