fixed links
[mysocials] / www / index.html
index f4c3a63..6c88284 100644 (file)
 <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&nbsp;&&nbsp;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&nbsp;&&nbsp;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&lt;service_name&gt;.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>
+       &lt;Request class="" function="" noAuthorize="true"&gt;
+               &lt;Params&gt;
+
+               &lt;/Params&gt;
+       &lt;/Request&gt;
+       </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>
+       &lt;Response class="" function="" authorized="true" upload="..." download="..."&gt;
+               &lt;Params&gt;
+
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </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>
+       &lt;Request class="settings" function="getSettings"&gt;
+               &lt;Params/&gt;
+        &lt;/Request&gt;
+       </pre>
+
+       <b>Response:</b>
+       <pre>
+       &lt;Response class="settings" function="getSettings"&gt;
+               &lt;Params&gt;
+                       &lt;string name="mid"&gt; ... &lt;/string&gt;
+                       &lt;string name="sid"&gt; ... &lt;/string&gt;
+                       &lt;string name="secret"&gt; ... &lt;/string&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </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>
+       &lt;Request class="settings" function="setSettings"&gt;
+               &lt;Params&gt;
+                       &lt;string name="mid"&gt; ... &lt;/string&gt;
+                       &lt;string name="sid"&gt; ... &lt;/string&gt;
+                       &lt;string name="secret"&gt; ... &lt;/string&gt;
+               &lt;/Params&gt;
+       &lt;/Request&gt;
+       </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>
+       &lt;Request class="settings" function="getListMethods"&gt;
+               &lt;Params/&gt;
+        &lt;/Request&gt;
+       </pre>
+       <b>Response:</b>
+       <pre>
+       &lt;Response class="settings" function="getListMethods"&gt;
+               &lt;Params&gt;
+                       &lt;string function="..." class="..."&gt; ... &lt;/string&gt;
+                       &lt;string function="..." class="..."&gt; ... &lt;/string&gt;
+                       ...
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </pre>
                
+       <h4>testConnection</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class="settings" function="testConnection"&gt;
+               &lt;Params/&gt;
+        &lt;/Request&gt;
+       </pre>
+       <b>Response:</b> info message or error message.
+
+
+
+       <h3>Profile</h3>
+       <h4>getProfile</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class="profile" function="getProfile"&gt;
+               &lt;Params id="..."&gt;
+        &lt;/Request&gt;
+       </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>
+       &lt;Response class="profile" function="getProfile"&gt;
+               &lt;Params id="..."&gt;
+                       &lt;string name="FirstName"&gt; ... &lt;/string&gt;
+                       &lt;string name="NickName"&gt; ... &lt;/string&gt;
+                       &lt;string name="LastName"&gt; ... &lt;/string&gt;
+                       &lt;string name="Gender"&gt; ... &lt;/string&gt;
+                       &lt;string name="Birthday"&gt; ... &lt;/string&gt;
+                       &lt;string name="MobilePhone"&gt; ... &lt;/string&gt;
+                       &lt;string name="HomePhone"&gt; ... &lt;/string&gt;
+                       &lt;img name="Img"&gt; ... &lt;/img&gt;
+                       &lt;string name="CityName"&gt; ... &lt;/string&gt;
+                       &lt;string name="CountryName"&gt; ... &lt;/string>
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </pre>
+
+       <h4>getBaseProfile</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class="profile" function="getBaseProfile"&gt;
+               &lt;Params id="..."&gt;
+        &lt;/Request&gt;
+       </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>
+       &lt;Response class="profile" function="getBaseProfile"&gt;
+               &lt;Params id="..."&gt;
+                       &lt;string name="FirstName"&gt; ... &lt;/string&gt;
+                       &lt;string name="NickName"&gt; ... &lt;/string&gt;
+                       &lt;string name="LastName"&gt; ... &lt;/string&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </pre>
+
+
+
+       <h3>Friends</h3>
+       <h4>getListFriends</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class="friends" function="getListFriends"&gt;
+               &lt;Params id="..."&gt;
+                       &lt;number name="page"&gt; ... &lt;/number&gt;
+                       &lt;number name="pageSize"&gt; ... &lt;/number&gt;
+               &lt;/Params&gt;
+        &lt;/Request&gt;
+       </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>
+       &lt;Response class="friends" function="getListFriends"&gt;
+               &lt;Params id="..."&gt;
+                       &lt;array name="contactList" page="..." pageSize="..." quantity="..."&gt;
+                               &lt;struct name="contact" id="..."&gt;
+                                       &lt;string name="FirstName"&gt; ... &lt;/string&gt;
+                                       &lt;string name="NickName"&gt; ... &lt;/string&gt;
+                                       &lt;string name="LastName"&gt; ... &lt;/string&gt;
+                                       &lt;string name="FriendStatus"&gt; ... &lt;/string&gt;
+                                       &lt;img name="Img"&gt; ... &lt;/img&gt;
+                               &lt;/struct&gt;
+                       &lt;/array&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </pre>
+
+       <h4>deleteFriend</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class="friends" function ="deleteFriend"&gt;
+               &lt;Params id="..."/&gt;
+        &lt;/Request&gt;
+       </pre>
+       <b>Response:</b> info message or error message.
+
+
+
+       <h3>Photos</h3>
+       <h4>createAlbum</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class="photos" function="createAlbum"&gt;
+               &lt;Params id="..."&gt;
+                       &lt;string name="name"&gt; ... &lt;/string&gt;
+                       &lt;string name="description"&gt; ... &lt;/string&gt;
+                       &lt;string name="privacy"&gt;PRIVACY&lt;/string&gt;
+               &lt;/Params&gt;
+        &lt;/Request&gt;
+       </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>
+       &lt;Response class="photos" function="createAlbum"&gt;
+               &lt;Params id="..."&gt;
+                       &lt;string name="albumId"&gt; ... &lt;/string&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </pre>
+
+       <h4>getListAlbums</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class="photos" function="getListAlbums"&gt;
+               &lt;Params id="..."/&gt;
+        &lt;/Request&gt;
+       </pre>
+       <p><i>id</i> - optional, equals id of owner of current account by default.</p>
+       <b>Response:</b>
+       <pre>
+       &lt;Response class="photos" function="getListAlbums"&gt;
+               &lt;Params&gt;
+                       &lt;array name="albumList" quantity="..." ownerId="..."&gt;
+                               &lt;struct name="album" id="..."&gt;
+                                       &lt;string name="title"&gt; ... &lt;/string&gt;
+                                       &lt;string name="description"&gt; ... &lt;/string&gt;
+                                       &lt;string name="thumbId"&gt; ... &lt;/string&gt;
+                                       &lt;img name="Img"&gt; ... &lt;/img&gt;
+                                       &lt;number name="created"&gt; ... &lt;/number&gt;
+                                       &lt;number name="updated"&gt; ... &lt;/number&gt;
+                                       &lt;number name="size"&gt; ... &lt;/number&gt;
+                                       &lt;number name="canUpload"&gt; ... &lt;/number&gt;
+                               &lt;/struct&gt;
+                       &lt;/array&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </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>
+       &lt;Request class=&quot;photos&quot; function = &quot;uploadPhoto&quot;&gt;
+               &lt;Params&gt;
+                       &lt;string name=&quot;albumId&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;albumName&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;albumPrivacy&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;albumDescription&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;file&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;fileName&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;description&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;tags&quot;&gt; ... &lt;/string&gt;
+               &lt;/Params&gt;
+       &lt;/Request&gt;
+       </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>
+       &lt;Response class=&quot;photos&quot; function = &quot;uploadPhoto&quot;&gt;
+               &lt;Params&gt;
+                       &lt;string name=&quot;albumId&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;photoId&quot;&gt; ... &lt;/string&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </pre>
+
+       <h4>getListPhotos</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class=&quot;photos&quot; function = &quot;getListPhotos&quot;&gt;
+               &lt;Params id=&quot;...&quot;&gt;
+                       &lt;string name=&quot;albumId&quot;&gt; ... &lt;/string&gt;
+                       &lt;number name=&quot;page&quot;&gt; ... &lt;/number&gt;
+                       &lt;number name=&quot;pageSize&quot;&gt; ... &lt;/number&gt;
+               &lt;/Params&gt;
+       &lt;/Request&gt;
+       </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>
+       &lt;Response class=&quot;photos&quot; function=&quot;getListPhotos&quot;&gt;
+               &lt;Params&gt;
+                       &lt;array name=&quot;photosList&quot; page=&quot;...&quot; pageSize=&quot;...&quot; quantity=&quot;...&quot; ownerId=&quot;...&quot; albumId=&quot;...&quot;&gt;
+                               &lt;struct name=&quot;photo&quot; id=&quot;...&quot;/&gt;
+                                       &lt;string name=&quot;urlSmall&quot;&gt; ... &lt;/string&gt;
+                                               &lt;string name=&quot;urlBig&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;urlOrig&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;description&quot;&gt; ... &lt;/string&gt;
+                                       &lt;number name=&quot;created&quot;&gt; ... &lt;/number&gt;
+                               &lt;/struct&gt;
+                       &lt;/array&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </pre>
+
+       <h4>getListUserPhotos</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class=&quot;photos&quot; function = &quot;getListUserPhotos&quot;&gt;
+               &lt;Params id=&quot;...&quot;&gt;
+                       &lt;number name=&quot;page&quot;&gt; ... &lt;/number&gt;
+                       &lt;number name=&quot;pageSize&quot;&gt; ... &lt;/number&gt;
+               &lt;/Params&gt;
+       &lt;/Request&gt;
+       </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>
+       &lt;Response class=&quot;photos&quot; function=&quot;getListUserPhotos&quot;&gt;
+               &lt;Params&gt;
+                       &lt;array name=&quot;photosList&quot; page=&quot;...&quot; pageSize=&quot;...&quot; quantity=&quot;...&quot;&gt;
+                               &lt;struct name=&quot;photo&quot; id=&quot;...&quot;/&gt;
+                                       &lt;string name=&quot;ownerId&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;albumId&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;urlSmall&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;urlBig&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;urlOrig&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;description&quot;&gt; ... &lt;/string&gt;
+                                       &lt;number name=&quot;created&quot;&gt; ... &lt;/number&gt;
+                               &lt;/struct&gt;
+                       &lt;/array&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </pre>
+
+       <h4>getListPhotoTags</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class=&quot;photos&quot; function = &quot;getListPhotoTags&quot;&gt;
+               &lt;Params&gt;
+                       &lt;string name=&quot;ownerId&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;albumId&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;photoId&quot;&gt; ... &lt;/string&gt;
+               &lt;/Params&gt;
+       &lt;/Request&gt;
+       </pre>
+       <b>Response:</b>
+       <pre>
+       &lt;Response class=&quot;photos&quot; function=&quot;getListPhotoTags&quot;&gt;
+               &lt;Params&gt;
+                       &lt;array name=&quot;tagsList&quot; quantity=&quot;...&quot; ownerId=&quot;...&quot; albumId=&quot;...&quot; photoId=&quot;...&quot;&gt;
+                               &lt;struct name=&quot;tag&quot; id=&quot;...&quot;/&gt;
+                                       &lt;string name=&quot;userId&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;text&quot;&gt; ... &lt;/string&gt;
+                                       &lt;number name=&quot;created&quot;&gt; ... &lt;/number&gt;
+                               &lt;/struct&gt;
+                       &lt;/array&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </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>
+       &lt;Request class=&quot;photos&quot; function = &quot;getListFavoritePhotos&quot;&gt;
+               &lt;Params id=&quot;...&quot;&gt;
+                       &lt;number name=&quot;page&quot;&gt; ... &lt;/number&gt;
+                       &lt;number name=&quot;pageSize&quot;&gt; ... &lt;/number&gt;
+               &lt;/Params&gt;
+       &lt;/Request&gt;
+       </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>
+       &lt;Response class=&quot;photos&quot; function=&quot;getListFavoritePhotos&quot;&gt;
+               &lt;Params&gt;
+                       &lt;array name=&quot;photosList&quot; page=&quot;...&quot; pageSize=&quot;...&quot; quantity=&quot;...&quot;&gt;
+                               &lt;struct name=&quot;photo&quot; id=&quot;...&quot;/&gt;
+                                       &lt;string name=&quot;ownerId&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;albumId&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;urlSmall&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;urlBig&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;urlOrig&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;description&quot;&gt; ... &lt;/string&gt;
+                                       &lt;number name=&quot;created&quot;&gt; ... &lt;/number&gt;
+                               &lt;/struct&gt;
+                       &lt;/array&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </pre>
+
+       <h4>getPhoto</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class=&quot;photos&quot; function = &quot;getPhoto&quot;&gt;
+               &lt;Params&gt;
+                       &lt;string name=&quot;url&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;path&quot;&gt; ... &lt;/string&gt;
+               &lt;/Params&gt;
+       &lt;/Request&gt;
+       </pre>
+       <b>Response:</b> info message or error message.
+
+       <h4>getListPhotoComments</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class=&quot;photos&quot; function = &quot;getListPhotoComments&quot;&gt;
+               &lt;Params&gt;
+                       &lt;string name=&quot;ownerId&quot;&gt; ... &lt;/string&gt;
+                               &lt;string name=&quot;albumId&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;photoId&quot;&gt; ... &lt;/string&gt;
+                       &lt;number name=&quot;page&quot;&gt; ... &lt;/number&gt;
+                       &lt;number name=&quot;pageSize&quot;&gt; ... &lt;/number&gt;
+               &lt;/Params&gt;
+       &lt;/Request&gt;
+       </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>
+       &lt;Response class=&quot;photos&quot; function=&quot;getListPhotoComments&quot;&gt;
+               &lt;Params&gt;
+                       &lt;array name=&quot;commentsList&quot; page=&quot;...&quot; pageSize=&quot;...&quot;  quantity=&quot;...&quot; ownerId=&quot;...&quot; albumId=&quot;...&quot; photoId=&quot;...&quot;&gt;
+                               &lt;struct name=&quot;comment&quot; id=&quot;...&quot;/&gt;
+                                       &lt;string name=&quot;ParentId&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;SenderId&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;SenderName&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;Time&quot;&gt; ... &lt;/string&gt;
+                                       &lt;string name=&quot;Text&quot;&gt; ... &lt;/string&gt;
+                               &lt;/struct&gt;
+                       &lt;/array&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </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>
+       &lt;Request class=&quot;photos&quot; function=&quot;sendPhotoComment&quot;&gt;
+               &lt;Params&gt;
+                       &lt;string name=&quot;ownerId&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;albumId&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;photoId&quot;&gt; ... &lt;/string&gt;
+                       &lt;string name=&quot;text&quot;&gt; ... &lt;/string&gt;
+               &lt;/Params&gt;
+       &lt;/Request&gt;
+       </pre>
+       <b>Response:</b> info message or error message.
+       
+
+
+       <h3>Messages</h3>
+       <h4>getListOutboxMessages</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class=&quot;messages&quot; function=&quot;getListOutboxMessages&quot;&gt;
+               &lt;Params&gt;
+                       &lt;number name=&quot;page&quot;&gt; ... &lt;/number&gt;
+                       &lt;number name=&quot;pageSize&quot;&gt; ... &lt;/number&gt;
+                       &lt;number name=&quot;timeOffset&quot;&gt; ... &lt;/number&gt;
+               &lt;/Params&gt;
+       &lt;/Request&gt;
+       </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>
+       &lt;Response class=&quot;messages&quot; function = &quot;getListOutboxMessages&quot;&gt;              
+               &lt;Params&gt;
+                       &lt;array name=&quot;messageList&quot; page=&quot;...&quot; pageSize=&quot;...&quot; quantity=&quot;...&quot;&gt;
+                               &lt;struct name=&quot;message&quot; id=&quot;...&quot;&gt;             
+                                               &lt;string name=&quot;SenderId&quot;&gt; ... &lt;/string&gt;
+                                               &lt;string name=&quot;SenderName&quot;&gt; ... &lt;/string&gt;
+                                               &lt;array name=&quot;recipientList&quot; quantity=&quot;...&quot;&gt;
+                                               &lt;struct name=&quot;recipient&quot;&gt;
+                                                       &lt;string name=&quot;RecipientId&quot;&gt; ... &lt;/string&gt;
+                                                       &lt;string name=&quot;RecipientName&quot;&gt; ... &lt;/string&gt;
+                                               &lt;/struct&gt;
+                                               &lt;/array&gt;
+                                               &lt;string name=&quot;Time&quot;&gt; ... &lt;/string&gt;
+                                               &lt;string name=&quot;Title&quot;&gt; ... &lt;/string&gt;
+                                               &lt;string name=&quot;Text&quot;&gt; ... &lt;/string&gt;
+                                               &lt;string name=&quot;Status&quot;&gt; ... &lt;/string&gt;
+                                               &lt;attachment id=&quot;...&quot; ownerId=&quot;...&quot; type=&quot;...&quot;&gt;
+                                                ...
+                                               &lt;/attachment&gt;
+                               &lt;/struct&gt;
+                       &lt;/array&gt;
+                       &lt;/Params&gt;
+       &lt;/Response&gt;
+       </pre>
+       <p>Parameter <i>attachment</i> is optional, its content depends on attribute <i>type</i> and can have following values:</p>
+       <pre>
+       &lt;attachment id=&quot;...&quot; ownerId=&quot;...&quot; type=&quot;image&quot;&gt;
+               &lt;string name=&quot;name&quot;&gt; ... &lt;/string&gt;      
+               &lt;string name=&quot;albumId&quot;&gt; ... &lt;/string&gt;
+                &lt;string name=&quot;urlSmall&quot;&gt; ... &lt;/string&gt;
+                &lt;string name=&quot;urlBig&quot;&gt; ... &lt;/string&gt;
+        &lt;/attachment&gt;
+
+       &lt;attachment id=&quot;...&quot; ownerId=&quot;...&quot; type=&quot;video&quot;&gt;
+               &lt;string name=&quot;name&quot;&gt; ... &lt;/string&gt;
+               &lt;string name=&quot;url&quot;&gt; ... &lt;/string&gt;
+                &lt;number name=&quot;duration&quot;&gt; ... &lt;/number&gt;
+                &lt;string name=&quot;urlImage&quot;&gt; ... &lt;/string&gt;
+        &lt;/attachment&gt;
+
+       &lt;attachment id=&quot;...&quot; ownerId=&quot;...&quot; type=&quot;audio&quot;&gt;
+               &lt;string name=&quot;name&quot;&gt; ... &lt;/string&gt;
+               &lt;string name=&quot;url&quot;&gt; ... &lt;/string&gt;
+               &lt;number name=&quot;duration&quot;&gt; ... &lt;/number&gt;
+        &lt;/attachment&gt;
+
+       &lt;attachment id=&quot;...&quot; ownerId=&quot;...&quot; type=&quot;link&quot;&gt;
+                       &lt;string name=&quot;name&quot;&gt; ... &lt;/string&gt;
+                &lt;string name=&quot;url&quot;&gt; ... &lt;/string&gt;
+                &lt;string name=&quot;urlImage&quot;&gt; ... &lt;/string&gt;
+        &lt;/attachment&gt;
+
+       &lt;attachment id=&quot;...&quot; ownerId=&quot;...&quot; type=&quot;note&quot;&gt;
+               &lt;string name=&quot;name&quot;&gt; ... &lt;/string&gt;
+               &lt;string name=&quot;url&quot;&gt; ... &lt;/string&gt;
+       &lt;/attachment&gt;
+       </pre>
+
+
+
+
+
+       <h3>Audio</h3>
+       <h4>getListAudio</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class="audio" function="getListAudio"&gt;
+               &lt;Params id="..."&gt;
+               &lt;/Params&gt;
+        &lt;/Request&gt;
+       </pre>
+       <b>Response:</b>
+       <pre>
+       &lt;Response class="audio" function="getListAudio"&gt;
+               &lt;Params id="..."&gt;
+                       &lt;array name="audioList" quantity="..." ownerId="..."&gt;
+                               &lt;struct name="audio" id="..."&gt;
+                                       &lt;string name="title"&gt; ... &lt;/string&gt;
+                                       &lt;string name="artist"&gt; ... &lt;/string&gt;
+                                       &lt;number name="duration"&gt; ... &lt;/number&gt;
+                                       &lt;string name="audio"&gt; ...url... &lt;/string&gt;
+                               &lt;/struct&gt;
+                       &lt;/array&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </pre>
+
+
+
+       <h3>Video</h3>
+       <h4>getListVideo</h4>
+       <b>Request:</b>
+       <pre>
+       &lt;Request class="video" function="getListVideo"&gt;
+               &lt;Params id="..."&gt;
+               &lt;/Params&gt;
+        &lt;/Request&gt;
+       </pre>
+       <b>Response:</b>
+       <pre>
+       &lt;Response class="video" function="getListVideo"&gt;
+               &lt;Params&gt;
+                       &lt;array name="videoList" quantity="..." ownerId="..."&gt;
+                               &lt;struct name="video" id="..."&gt;
+                                       &lt;string name="title"&gt; ... &lt;/string&gt;
+                                       &lt;string name="description"&gt; ... &lt;/string&gt;
+                                       &lt;number name="duration"&gt; ... &lt;/number&gt;
+                                       &lt;img name="Img"&gt; ...url... &lt;/img&gt;
+                                       &lt;string name="link"&gt; ...url... &lt;/string&gt;
+                                       &lt;string name="url"&gt; ...url to player... &lt;/string&gt;
+                               &lt;/struct&gt;
+                       &lt;/array&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </pre>
+
+
+
+       <h3>News</h3>
+
+       <h3>Info and error messages</h3>
+       <h4>Error message format</h4>
+       <pre>
+       &lt;Response class="systemMessages" function = "errorMessage"&gt;              
+               &lt;Params&gt;
+                       &lt;string name="moduleName"&gt; ... &lt;/string&gt;
+                       &lt;string name="code"&gt; ... &lt;/string&gt;
+                       &lt;string name="text"&gt; ... &lt;/string&gt;
+                       &lt;string name="comment"&gt; ... &lt;/string&gt;
+                       &lt;string name="type"&gt;user/internal/service &lt;/string&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </pre>
+
+       <h4>Info message format</h4>
+       <pre>
+       &lt;Response class="systemMessages" function = "infoMessage"&gt;              
+               &lt;Params&gt;
+                       &lt;string name="moduleName"&gt; ... &lt;/string&gt;
+               &lt;/Params&gt;
+       &lt;/Response&gt;
+       </pre>
+
+
       </td>
       </tr>
     </table></td>