<tr>
<td bgcolor="#E2E2D2" class="border" height="40"><table width="85%" border="0" cellspacing="0" cellpadding="0">
<tr align="center">
- <td><a href="index.html" class="toplinks">Description & Usage</a></td>
+ <td><a href="index.html" class="toplinks">MySocials API</a></td>
<td class="toplinks">|</td>
<td><a href="privacy.html" class="toplinks">Privacy</a></td>
<td class="toplinks">|</td>
<td><a href="development.html" class="toplinks">Development</a></td>
<td class="toplinks">|</td>
<td><a href="downloads.html" class="toplinks">Downloads</a></td>
- <td class="toplinks"> | </td>
- <td><a href="api.html" class="toplinks">MySocials API</a></td>
</tr>
</table></td>
</tr>
</tr>
<tr>
<td class="content">
- <h1>Description & Usage</h1>
- <h2>Work with application</h2>
+ <h1>MySocials API</h1>
+ <h2>MySocials driver API</h2>
+ <p> MySocials driver is provided as a shared library (libmsa<service_name>.so). Structure <b>msa_module *d</b> includes information about the driver (name, identifier, pointers to driver functions). This structure is filled during initialization of the driver.
+ </p>
+ <h3>Driver interface</h3>
+ <p>Driver interface is described in file interface.h and consists of 4 functions:
+ <ul>
+ <li><b>msa_module_init(struct msa_module* d)</b> — driver initialization;</li>
+ <li><b>msa_module_get_info(struct msa_module* d)</b> — getting information about driver;</li>
+ <li><b>msa_module->send(xmlDocPtr request, xmlDocPtr* response, const struct msa_module* info)</b> — request sending and response receiveing;</li>
+ <li><b>msa_module->shutdown(const struct msa_module*)</b> - driver shutdown.</li>
+ </ul>
+
+ <h3>Driver initialization and shutting down</h3>
+ Driver initialization is performed by using <b>msa_module_init(struct msa_module* d)</b> function. Instance of structure which stores profile setting is created during initialization. Parameter d stores identifier of this instance.
+ <br>
+ Function <b>msa_module->shutdown(const struct msa_module*)</b> is used during program termination.
+
+ <h3>Interaction with driver</h3>
+
+ Fuction <b>msa_module->send(xmlDocPtr request, xmlDocPtr* response, const struct msa_module* info)</b> is used to perform requests to the driver.
+Parameter <i>request</i> is a request in XML format. Description of structure of sending and receiveing data is described <a>here</a>.
+Parameter <i>response</i> contains driver response in XML format.
+Function <b>msa_module_get_info(struct msa_module* d)</b> is used to get information about driver (driver name and icon).
+</p>
+
+ <h2>MySocials driver data structures</h2>
+
+ <p>Here you can see description of data structures which are used by MySocials driver. These structures are declared in <b>mysocials_driver.h</b> file which is available for other applications from mysocials-dev package.
+
+ <h3>Enumerations</h3>
+ <h4>Error codes</h4>
+ <pre>enum error_type {
+ FAILURE, // Function finished with error
+ SUCCESS, // Function finished without error
+ ERROR_ALLOCATION_OF_MEMORY, // Allocation of memory
+ ERROR_NO_FUNCTION, // Defining function error
+ ERROR_INITIALIZATION_ALREADY_PASSED, // Re-initialization error
+ ERROR_IS_BUSY, // Module is busy
+ ERROR_SEND_DATA, // Data sending error
+ ERROR_PARSE_DATA // Data parsing error
+}
+ </pre>
+
+ <h3>Driver interface</h3>
+ <p>MySocials driver interface described in <b>msa_module</b> structure. Some of the fields of this stucture are filled before initialization by application (marked with **), the rest of it is filled during initialization.</p>
+ <pre>
+ struct msa_module {
+ gchar *id; // Identifier
+ gchar *name; // External driver name
+ gchar* driverName; // Driver name for system purposes (equals driver identifier)
+ gchar *pic; // Icon coded in base64
+ gchar *proxy; // **Proxy server address or NULL
+ gint port; // **Proxy server port
+
+ /* Pointer to function for processing requests.
+ Parameters:
+ xmlRequest — request in XML format
+ xmlResponse — response in XML format
+ info — structure with driver settings
+
+ Function returns SUCCESS in case without errors, otherwise FAILURE.
+ */
+
+ error_type (*send)(char* xmlRequest, char** xmlResponse, struct msa_module *info)
+
+ /* Pointer to function for driver shutting down.
+ Parameters:
+ info — structure with driver settings
+
+ Function returns SUCCESS in case without errors, otherwise FAILURE.
+ */
+
+ error_type (*shutdown)(struct msa_module* info);
+}
+
+ </pre>
+
+ <h2>Format of XML requests and responses</h2>
+ <h3>Common format of driver request and response</h3>
+ <h4>Request format</h4>
+ <pre>
+ <Request class="" function="" noAuthorize="true">
+ <Params>
+
+ </Params>
+ </Request>
+ </pre>
+
+ <ul>
+ <li><i>noAuthorize</i> - flag which forbids driver to call WebAuth (optional, set to false by default) </li>
+ <li><i>class</i> - class which includes called function</li>
+ <li><i>function</i> - name of the function</li>
+ <li><i>Params</i> - set of parameters, stricly defined for each function</li>
+ </ul>
+
+ <h4>Response format</h4>
+ <pre>
+ <Response class="" function="" authorized="true" upload="..." download="...">
+ <Params>
+
+ </Params>
+ </Response>
+ </pre>
+
+ <ul>
+ <li><i>authorized</i> - flag which indicates authorization during request performing (flag isn't set if error occures during request performing) </li>
+ <li><i>upload</i> - number of bytes sent to server</li>
+ <li><i>download</i> - number of bytes received from server</li>
+ </ul>
+
+ <p>Following classes are supported:
+ <ul>
+ <li><i>settings:</i> class for working with settings</li>
+ <li><i>profile:</i> class for receiving data about user's profile</li>
+ <li><i>friends:</i> class for receiving data about user's friends</li>
+ <li><i>messages:</i> class for receiving data about messages</li>
+ <li><i>photos:</i> class for working with photos</li>
+ <li><i>audio:</i> class for working with audio files</li>
+ <li><i>video:</i> class for working with video files</li>
+ <li><i>news:</i> class for working with news</li>
+ </ul>
+ </p>
+
+ <h3>Settings</h3>
+ <h4>getSettings</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="settings" function="getSettings">
+ <Params/>
+ </Request>
+ </pre>
+
+ <b>Response:</b>
+ <pre>
+ <Response class="settings" function="getSettings">
+ <Params>
+ <string name="mid"> ... </string>
+ <string name="sid"> ... </string>
+ <string name="secret"> ... </string>
+ </Params>
+ </Response>
+ </pre>
+ <p>Content of <i>Params</i> tag depends on the driver. It is recommended to save content of <i>Params</i> tag and send it to setup function without any changes.</p>
+
+ <h4>setSettings</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="settings" function="setSettings">
+ <Params>
+ <string name="mid"> ... </string>
+ <string name="sid"> ... </string>
+ <string name="secret"> ... </string>
+ </Params>
+ </Request>
+ </pre>
+ <p><i>Params</i> tag must contain data received from driver during <i>getSettings</i> request.</p>
+ <b>Response:</b> info message or error message.
+
+ <h4>getListMethods</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="settings" function="getListMethods">
+ <Params/>
+ </Request>
+ </pre>
+ <b>Response:</b>
+ <pre>
+ <Response class="settings" function="getListMethods">
+ <Params>
+ <string function="..." class="..."> ... </string>
+ <string function="..." class="..."> ... </string>
+ ...
+ </Params>
+ </Response>
+ </pre>
+ <h4>testConnection</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="settings" function="testConnection">
+ <Params/>
+ </Request>
+ </pre>
+ <b>Response:</b> info message or error message.
+
+
+
+ <h3>Profile</h3>
+ <h4>getProfile</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="profile" function="getProfile">
+ <Params id="...">
+ </Request>
+ </pre>
+ <p>Attribute <i>id</i> is an id of user whose profile is needed to be received (optional, equals id of owner of current account by default).</p>
+ <b>Response:</b>
+ <pre>
+ <Response class="profile" function="getProfile">
+ <Params id="...">
+ <string name="FirstName"> ... </string>
+ <string name="NickName"> ... </string>
+ <string name="LastName"> ... </string>
+ <string name="Gender"> ... </string>
+ <string name="Birthday"> ... </string>
+ <string name="MobilePhone"> ... </string>
+ <string name="HomePhone"> ... </string>
+ <img name="Img"> ... </img>
+ <string name="CityName"> ... </string>
+ <string name="CountryName"> ... </string>
+ </Params>
+ </Response>
+ </pre>
+
+ <h4>getBaseProfile</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="profile" function="getBaseProfile">
+ <Params id="...">
+ </Request>
+ </pre>
+ <p>Attribute <i>id</i> is an id of user whose profile is needed to be received (optional, equals id of owner of current account by default).</p>
+ <b>Response:</b>
+ <pre>
+ <Response class="profile" function="getBaseProfile">
+ <Params id="...">
+ <string name="FirstName"> ... </string>
+ <string name="NickName"> ... </string>
+ <string name="LastName"> ... </string>
+ </Params>
+ </Response>
+ </pre>
+
+
+
+ <h3>Friends</h3>
+ <h4>getListFriends</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="friends" function="getListFriends">
+ <Params id="...">
+ <number name="page"> ... </number>
+ <number name="pageSize"> ... </number>
+ </Params>
+ </Request>
+ </pre>
+ <ul>
+ <li><i>page</i> - number of page that is requested (optional, positive integer, equals 1 by default)</li>
+ <li><i>pageSize</i> - page size (optional, positive integer, equals 100 by default)</li>
+ <li><i>id</i> - user id (optional, equals id of owner of current account by default) </li>
+ </ul>
+ <b>Response:</b>
+ <pre>
+ <Response class="friends" function="getListFriends">
+ <Params id="...">
+ <array name="contactList" page="..." pageSize="..." quantity="...">
+ <struct name="contact" id="...">
+ <string name="FirstName"> ... </string>
+ <string name="NickName"> ... </string>
+ <string name="LastName"> ... </string>
+ <string name="FriendStatus"> ... </string>
+ <img name="Img"> ... </img>
+ </struct>
+ </array>
+ </Params>
+ </Response>
+ </pre>
+
+ <h4>deleteFriend</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="friends" function ="deleteFriend">
+ <Params id="..."/>
+ </Request>
+ </pre>
+ <b>Response:</b> info message or error message.
+
+
+
+ <h3>Photos</h3>
+ <h4>createAlbum</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="photos" function="createAlbum">
+ <Params id="...">
+ <string name="name"> ... </string>
+ <string name="description"> ... </string>
+ <string name="privacy">PRIVACY</string>
+ </Params>
+ </Request>
+ </pre>
+ PRIVACY can have following values:
+ <ul>
+ <li>SELF - created album will be available only for its owner; </li>
+ <li>ALL_FRIENDS - created album will be available for owner's friends;</li>
+ <li>FRIENDS_OF_FRIENDS - created album will be available only for owner's friends and their friends; </li>
+ <li>EVERYONE - created album will be available only for every user.</li>
+ </ul>
+ <p>This set of values can be extended. If PRIVACY isn't set, driver use default setting for all new albums which are set by user.</p>
+ <ul>
+ <li><i>id</i> - optional, equals id of owner of current account by default </li>
+ <li><i>name</i> - optional, equals "no_name" by default</li>
+ <li><i>description</i> - optional </li>
+ </ul>
+ <b>Response:</b>
+ <pre>
+ <Response class="photos" function="createAlbum">
+ <Params id="...">
+ <string name="albumId"> ... </string>
+ </Params>
+ </Response>
+ </pre>
+
+ <h4>getListAlbums</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="photos" function="getListAlbums">
+ <Params id="..."/>
+ </Request>
+ </pre>
+ <p><i>id</i> - optional, equals id of owner of current account by default.</p>
+ <b>Response:</b>
+ <pre>
+ <Response class="photos" function="getListAlbums">
+ <Params>
+ <array name="albumList" quantity="..." ownerId="...">
+ <struct name="album" id="...">
+ <string name="title"> ... </string>
+ <string name="description"> ... </string>
+ <string name="thumbId"> ... </string>
+ <img name="Img"> ... </img>
+ <number name="created"> ... </number>
+ <number name="updated"> ... </number>
+ <number name="size"> ... </number>
+ <number name="canUpload"> ... </number>
+ </struct>
+ </array>
+ </Params>
+ </Response>
+ </pre>
+ <p><i>canUpload</i> - optional, if this parameter isn't set, it means that album is available for current user.</p>
+
+ <h4>uploadPhoto</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="photos" function = "uploadPhoto">
+ <Params>
+ <string name="albumId"> ... </string>
+ <string name="albumName"> ... </string>
+ <string name="albumPrivacy"> ... </string>
+ <string name="albumDescription"> ... </string>
+ <string name="file"> ... </string>
+ <string name="fileName"> ... </string>
+ <string name="description"> ... </string>
+ <string name="tags"> ... </string>
+ </Params>
+ </Request>
+ </pre>
+ <ul>
+ <li>There have to be only one of parameters <i>albumName</i> or <i>albumId</i> in request.</li>
+ <li>If <i>albumId</i> is set, photo is uploaded to this album.</li>
+ <li>If <i>albumId</i> isn't specified, new album is created (with name <i>albumName</i>, description <i>albumDescription</i> and private settings <i>albumPrivacy</i>). </li>
+ <li>If both parameters <i>albumName</i> and <i>albumId</i> aren't specified, driver returns error message or photo is uploaded to common album, which is available in some services.</li>
+ <li>Parameter <i>tags</i> can not be supported by some services.</li>
+ <li>Parameter <i>file</i> contains full path to file for sending.</li>
+ <li>Parameter <i>fileName</i> contains name of file for upload.</li>
+ </ul>
+ <b>Response:</b>
+ <pre>
+ <Response class="photos" function = "uploadPhoto">
+ <Params>
+ <string name="albumId"> ... </string>
+ <string name="photoId"> ... </string>
+ </Params>
+ </Response>
+ </pre>
+
+ <h4>getListPhotos</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="photos" function = "getListPhotos">
+ <Params id="...">
+ <string name="albumId"> ... </string>
+ <number name="page"> ... </number>
+ <number name="pageSize"> ... </number>
+ </Params>
+ </Request>
+ </pre>
+ <ul>
+ <li><i>page</i> - number of page that is requested (optional, positive integer, equals 1 by default)</li>
+ <li><i>pageSize</i> - page size (optional, positive integer, equals 100 by default)</li>
+ <li><i>id</i> - user id (optional, equals id of owner of current account by default) </li>
+ </ul>
+ <b>Response:</b>
+ <pre>
+ <Response class="photos" function="getListPhotos">
+ <Params>
+ <array name="photosList" page="..." pageSize="..." quantity="..." ownerId="..." albumId="...">
+ <struct name="photo" id="..."/>
+ <string name="urlSmall"> ... </string>
+ <string name="urlBig"> ... </string>
+ <string name="urlOrig"> ... </string>
+ <string name="description"> ... </string>
+ <number name="created"> ... </number>
+ </struct>
+ </array>
+ </Params>
+ </Response>
+ </pre>
+
+ <h4>getListUserPhotos</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="photos" function = "getListUserPhotos">
+ <Params id="...">
+ <number name="page"> ... </number>
+ <number name="pageSize"> ... </number>
+ </Params>
+ </Request>
+ </pre>
+ <ul>
+ <li><i>page</i> - number of page that is requested (optional, positive integer, equals 1 by default)</li>
+ <li><i>pageSize</i> - page size (optional, positive integer, equals 100 by default)</li>
+ <li><i>id</i> - user id (optional, equals id of owner of current account by default) </li>
+ </ul>
+ <b>Response:</b>
+ <pre>
+ <Response class="photos" function="getListUserPhotos">
+ <Params>
+ <array name="photosList" page="..." pageSize="..." quantity="...">
+ <struct name="photo" id="..."/>
+ <string name="ownerId"> ... </string>
+ <string name="albumId"> ... </string>
+ <string name="urlSmall"> ... </string>
+ <string name="urlBig"> ... </string>
+ <string name="urlOrig"> ... </string>
+ <string name="description"> ... </string>
+ <number name="created"> ... </number>
+ </struct>
+ </array>
+ </Params>
+ </Response>
+ </pre>
+
+ <h4>getListPhotoTags</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="photos" function = "getListPhotoTags">
+ <Params>
+ <string name="ownerId"> ... </string>
+ <string name="albumId"> ... </string>
+ <string name="photoId"> ... </string>
+ </Params>
+ </Request>
+ </pre>
+ <b>Response:</b>
+ <pre>
+ <Response class="photos" function="getListPhotoTags">
+ <Params>
+ <array name="tagsList" quantity="..." ownerId="..." albumId="..." photoId="...">
+ <struct name="tag" id="..."/>
+ <string name="userId"> ... </string>
+ <string name="text"> ... </string>
+ <number name="created"> ... </number>
+ </struct>
+ </array>
+ </Params>
+ </Response>
+ </pre>
+ <p>Parameter <i>userId</i> is an id of user which is marked on photo (optional).</p>
+
+ <h4>getListFavoritePhotos</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="photos" function = "getListFavoritePhotos">
+ <Params id="...">
+ <number name="page"> ... </number>
+ <number name="pageSize"> ... </number>
+ </Params>
+ </Request>
+ </pre>
+ <ul>
+ <li><i>page</i> - number of page that is requested (optional, positive integer, equals 1 by default)</li>
+ <li><i>pageSize</i> - page size (optional, positive integer, equals 100 by default)</li>
+ <li><i>id</i> - user id (optional, equals id of owner of current account by default) </li>
+ </ul>
+ <b>Response:</b>
+ <pre>
+ <Response class="photos" function="getListFavoritePhotos">
+ <Params>
+ <array name="photosList" page="..." pageSize="..." quantity="...">
+ <struct name="photo" id="..."/>
+ <string name="ownerId"> ... </string>
+ <string name="albumId"> ... </string>
+ <string name="urlSmall"> ... </string>
+ <string name="urlBig"> ... </string>
+ <string name="urlOrig"> ... </string>
+ <string name="description"> ... </string>
+ <number name="created"> ... </number>
+ </struct>
+ </array>
+ </Params>
+ </Response>
+ </pre>
+
+ <h4>getPhoto</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="photos" function = "getPhoto">
+ <Params>
+ <string name="url"> ... </string>
+ <string name="path"> ... </string>
+ </Params>
+ </Request>
+ </pre>
+ <b>Response:</b> info message or error message.
+
+ <h4>getListPhotoComments</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="photos" function = "getListPhotoComments">
+ <Params>
+ <string name="ownerId"> ... </string>
+ <string name="albumId"> ... </string>
+ <string name="photoId"> ... </string>
+ <number name="page"> ... </number>
+ <number name="pageSize"> ... </number>
+ </Params>
+ </Request>
+ </pre>
+ <ul>
+ <li><i>page</i> - number of page that is requested (optional, positive integer, equals 1 by default)</li>
+ <li><i>pageSize</i> - page size (optional, positive integer, equals 100 by default)</li>
+ </ul>
+ <b>Response:</b>
+ <pre>
+ <Response class="photos" function="getListPhotoComments">
+ <Params>
+ <array name="commentsList" page="..." pageSize="..." quantity="..." ownerId="..." albumId="..." photoId="...">
+ <struct name="comment" id="..."/>
+ <string name="ParentId"> ... </string>
+ <string name="SenderId"> ... </string>
+ <string name="SenderName"> ... </string>
+ <string name="Time"> ... </string>
+ <string name="Text"> ... </string>
+ </struct>
+ </array>
+ </Params>
+ </Response>
+ </pre>
+ <p>Parameter <i>ParentId</i> is an id of previous comment, if there is such one (optional).</p>
+
+ <h4>sendPhotoComment</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="photos" function="sendPhotoComment">
+ <Params>
+ <string name="ownerId"> ... </string>
+ <string name="albumId"> ... </string>
+ <string name="photoId"> ... </string>
+ <string name="text"> ... </string>
+ </Params>
+ </Request>
+ </pre>
+ <b>Response:</b> info message or error message.
+
+
+
+ <h3>Messages</h3>
+ <h4>getListOutboxMessages</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="messages" function="getListOutboxMessages">
+ <Params>
+ <number name="page"> ... </number>
+ <number name="pageSize"> ... </number>
+ <number name="timeOffset"> ... </number>
+ </Params>
+ </Request>
+ </pre>
+ <ul>
+ <li><i>page</i> - number of page that is requested (optional, positive integer, equals 1 by default)</li>
+ <li><i>pageSize</i> - page size (optional, positive integer, equals 100 by default)</li>
+ <li><i>timeOffset</i> - time offset for requested messages</li>
+ </ul>
+ <b>Response:</b>
+ <pre>
+ <Response class="messages" function = "getListOutboxMessages">
+ <Params>
+ <array name="messageList" page="..." pageSize="..." quantity="...">
+ <struct name="message" id="...">
+ <string name="SenderId"> ... </string>
+ <string name="SenderName"> ... </string>
+ <array name="recipientList" quantity="...">
+ <struct name="recipient">
+ <string name="RecipientId"> ... </string>
+ <string name="RecipientName"> ... </string>
+ </struct>
+ </array>
+ <string name="Time"> ... </string>
+ <string name="Title"> ... </string>
+ <string name="Text"> ... </string>
+ <string name="Status"> ... </string>
+ <attachment id="..." ownerId="..." type="...">
+ ...
+ </attachment>
+ </struct>
+ </array>
+ </Params>
+ </Response>
+ </pre>
+ <p>Parameter <i>attachment</i> is optional, its content depends on attribute <i>type</i> and can have following values:</p>
+ <pre>
+ <attachment id="..." ownerId="..." type="image">
+ <string name="name"> ... </string>
+ <string name="albumId"> ... </string>
+ <string name="urlSmall"> ... </string>
+ <string name="urlBig"> ... </string>
+ </attachment>
+
+ <attachment id="..." ownerId="..." type="video">
+ <string name="name"> ... </string>
+ <string name="url"> ... </string>
+ <number name="duration"> ... </number>
+ <string name="urlImage"> ... </string>
+ </attachment>
+
+ <attachment id="..." ownerId="..." type="audio">
+ <string name="name"> ... </string>
+ <string name="url"> ... </string>
+ <number name="duration"> ... </number>
+ </attachment>
+
+ <attachment id="..." ownerId="..." type="link">
+ <string name="name"> ... </string>
+ <string name="url"> ... </string>
+ <string name="urlImage"> ... </string>
+ </attachment>
+
+ <attachment id="..." ownerId="..." type="note">
+ <string name="name"> ... </string>
+ <string name="url"> ... </string>
+ </attachment>
+ </pre>
+
+
+
+
+
+ <h3>Audio</h3>
+ <h4>getListAudio</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="audio" function="getListAudio">
+ <Params id="...">
+ </Params>
+ </Request>
+ </pre>
+ <b>Response:</b>
+ <pre>
+ <Response class="audio" function="getListAudio">
+ <Params id="...">
+ <array name="audioList" quantity="..." ownerId="...">
+ <struct name="audio" id="...">
+ <string name="title"> ... </string>
+ <string name="artist"> ... </string>
+ <number name="duration"> ... </number>
+ <string name="audio"> ...url... </string>
+ </struct>
+ </array>
+ </Params>
+ </Response>
+ </pre>
+
+
+
+ <h3>Video</h3>
+ <h4>getListVideo</h4>
+ <b>Request:</b>
+ <pre>
+ <Request class="video" function="getListVideo">
+ <Params id="...">
+ </Params>
+ </Request>
+ </pre>
+ <b>Response:</b>
+ <pre>
+ <Response class="video" function="getListVideo">
+ <Params>
+ <array name="videoList" quantity="..." ownerId="...">
+ <struct name="video" id="...">
+ <string name="title"> ... </string>
+ <string name="description"> ... </string>
+ <number name="duration"> ... </number>
+ <img name="Img"> ...url... </img>
+ <string name="link"> ...url... </string>
+ <string name="url"> ...url to player... </string>
+ </struct>
+ </array>
+ </Params>
+ </Response>
+ </pre>
+
+
+
+ <h3>News</h3>
+
+ <h3>Info and error messages</h3>
+ <h4>Error message format</h4>
+ <pre>
+ <Response class="systemMessages" function = "errorMessage">
+ <Params>
+ <string name="moduleName"> ... </string>
+ <string name="code"> ... </string>
+ <string name="text"> ... </string>
+ <string name="comment"> ... </string>
+ <string name="type">user/internal/service </string>
+ </Params>
+ </Response>
+ </pre>
+
+ <h4>Info message format</h4>
+ <pre>
+ <Response class="systemMessages" function = "infoMessage">
+ <Params>
+ <string name="moduleName"> ... </string>
+ </Params>
+ </Response>
+ </pre>
+
+
</td>
</tr>
</table></td>