--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>MySocials Project</title>
+<link href="style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="779" border="0" align="center" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><table width="70%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td class="redbox"> </td>
+ </tr>
+ <tr>
+ <td height="45"><a href="index.html" class="logo">MySocials Project</a></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td> </td>
+ </tr>
+<tr>
+ <td bgcolor="#E2E2D2" class="border" height="40"><table width="85%" border="0" cellspacing="0" cellpadding="0">
+ <tr align="center">
+ <td><a href="api.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>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td height="10"></td>
+ </tr>
+ <tr>
+ <td bgcolor="#F3F3F3" class="border"><table width="100%" border="0"
+ cellspacing="0" cellpadding="0">
+ <tr>
+ <td height="10"></td>
+ </tr>
+ <tr>
+ <td><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td class="heading"></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td height="10"></td>
+ </tr>
+ <tr>
+ <td class="content">
+ <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>
+ </tr>
+ <tr>
+ <td><table width="92%" border="0" align="right" cellpadding="0"
+ cellspacing="0">
+ <tr>
+ <td class="copybox"> MySocials Project © 2011</td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td height="10"> </td>
+ </tr>
+</table>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>MySocials Gallery</title>
+<link href="style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="779" border="0" align="center" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><table width="70%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td class="redbox"> </td>
+ </tr>
+ <tr>
+ <td height="45"><a href="index.html" class="logo">MySocials Gallery</a></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td> </td>
+ </tr>
+<tr>
+ <td bgcolor="#E2E2D2" class="border" height="40"><table width="85%" border="0" cellspacing="0" cellpadding="0">
+ <tr align="center">
+ <td><a href="index_ru.html" class="toplinks">Описание & Использование</a></td>
+ <td class="toplinks">|</td>
+ <td><a href="privacy_ru.html" class="toplinks">Kонфиденциальность</a></td>
+ <td class="toplinks"> | </td>
+ <td><a href="development_ru.html" class="toplinks">Разработка</a></td>
+ <td class="toplinks"> | </td>
+ <td><a href="downloads_ru.html" class="toplinks">Загрузки</a></td>
+ <td class="toplinks"> | </td>
+ <td><a href="index.html" class="toplinks">English</a></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td height="10"></td>
+ </tr>
+ <tr>
+ <td bgcolor="#F3F3F3" class="border"><table width="100%" border="0"
+ cellspacing="0" cellpadding="0">
+ <tr>
+ <td height="10"></td>
+ </tr>
+ <tr>
+ <td><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td class="heading"></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td height="10"></td>
+ </tr>
+ <tr>
+ <td class="content">
+ <h1>Описание & Использование</h1>
+ <h2>Работа с приложением</h2>
+ <p> Приложение MySocials Gallery предназначено для просмотра галерей и изображений, созданных на различных социальных сервисах. Оно позволяет пользователю просматривать собственные изображения и галереи, а также галереи, созданные его друзьями. Текущая версия приложения поддерживает такие социальные сервисы, как Facebook, VKontakte и Flickr.</p>
+ <p>На данном сайте представлено описание работы MySocials Gallery на мобильном устройстве на платформе Maemo 5 (Nokia N900). Приложение работает аналогично и на других платформах.</p>
+ <p>При первом запуске MySocials Gallery отображается окно "Добавление новой учетной записи". Вам необходимо ввести название новой учетной записи и выбрать из списка один из поддерживаемых сервисов.</p>
+ <p align="center"><img src="images/add-account.png" width="400px" height="240px" /></p>
+ <p>
+ После этого Вам необходимо пройти авторизацию на сервисе. Приложение использует авторизацию через веб-интерфейс (с помощью приложения Webauth). <b>Приложение не хранит вашу регистрационную информацию (логины и пароли доступа к сервисам).</b> Поэтому если текущая пользовательская сессия истекла, то приложение отобразит окно для повторной авторизации. </p>
+ <p align="center"><img src="images/auth.png" width="400px" height="240px" /></p>
+ <p>
+ В приложении MySocials Gallery существуют два вида форм для отображения информации: главная форма и форма просмотра изображений. Главная форма состоит из двух панелей и нескольких кнопок. Кнопка <img src="images/general_refresh.png" width="25px" height="25px"/> позволяет обновить данные в приложении. Кнопка <img src="images/general_back.png" width="25px" height="25px"/> позволяет вернуться к предыдущей панели. Например, если Вы просматриваете список альбомов и изображений пользователя, то данная кнопка вернет Вас к просмотру списка друзей и альбомов.
+ </p>
+ <p>
+ После того, как Вы создадите учетную запись и пройдете авторизацию на сервисе, Вы увидите главную форму приложения, на которой будут расположены список друзей и список Ваших альбомов.
+ </p>
+ <p align="center"><img src="images/main-window.png" width="400px" height="240px" /></p>
+ <p>
+ Чтобы найти друга в списке, Вы можете воспользоваться специальным полем для быстрого поиска. Кнопка <img src="images/general_backspace.png" width="25px" height="25px"/> позволяет очистить данное поле.
+ </p>
+ <p align="center"><img src="images/friend-search.png" width="400px" height="240px" /></p>
+ <p>
+ Для того, чтобы просмотреть список альбомов друга, найдите его в списке и щелкните по нему.
+ </p>
+ <p align="center"><img src="images/friend-albums.png" width="400px" height="240px" /></p>
+ <p>
+ После этого Вы перейдете к списку альбомов выбранного пользователя и списку изображений в каждом альбоме.
+ </p>
+ <p align="center"><img src="images/friend-photos.png" width="400px" height="240px" /></p>
+ <p>
+ Для просмотра изображения в полноэкранном режиме щелкните по нему. Если приложение еще не загрузило изображение с сервиса, то отображется его уменьшенная копия.
+ </p>
+ <p align="center"><img src="images/download-image-for-show.png" width="400px" height="240px" /></p>
+ <p>После загрузки Вы увидите изображение в полноэкранном режиме. На данной форме приложения находится меню, с помощью которого можно работать с комментариями к изображению (ели данная услуга поддерживается сервисом). Оно содержит такие пункты меню как <b>"Обновить комментарии"</b> и <b>"Добавить комментарий"</b>.</p>
+ <p align="center"><img src="images/image-show.png" width="400px" height="240px" /></p>
+ <p>Под изображением расположен список комментариев к нему.</p>
+ <p align="center"><img src="images/comments.png" width="400px" height="240px" /></p>
+ <p>Для того, чтобы отправить свой комментарий к текущему изображению, воспользуйтесь пунктом меню <b>"Добавить комментарий"</b>.</p>
+ <p align="center"><img src="images/send-comment.png" width="400px" height="240px" /></p>
+
+ <h2>Настройки приложения</h2>
+ <p>
+ Для настройки MySocials Gallery необходимо воспользоваться главным меню. Данное меню доступно на главной форме приложения.
+ </p>
+ <p align="center"><img src="images/menu.png" width="400px" height="240px" /></p>
+ <p>
+ Пункт меню <b>"Настройка сети"</b> позволяет Вам настроить параметры прокси сервера.
+ Кнопка <b>"Без прокси"</b> отключает поиск настроек прокси на вашем устройстве.
+ Кнопка <b>"Системный"</b> включает поиск настроек прокси на вашем устройстве для их использования приложением.
+ Кнопка <b>"Вручную"</b> активирует поля для ввода адреса и порта для работы с прокси сервером.
+ </p>
+ <p align="center"><img src="images/network-settings.png" width="400px" height="240px" /></p>
+ <p>
+ Вы можете редактировать список созданных в приложении учетных записей с помощью пункта
+ меню <b>"Настройка учетных записей"</b>.
+ Кнопка <b>"Добавить"</b> позволяет создать новую учетную запись. Кнопка <b>"Удалить"</b> позволяет удалить одну из существующих учетных записей. Кнопка <b>"Переподключиться"</b> позволяет пройти повторную авторизацию на сервисе. Этой кнопкой следует воспользоваться, если возникли проблемы с подключением устройства к сети и учетная запись была переведена в автономный режим. В этом случае Вам необходимо выбрать из списка проблемную учетную запись и нажать данную кнопку. Также необходимо воспользоваться данной кнопкой, если Вы хотите авторизоваться на сервисе, использую другой логин и пароль.
+ </p>
+ <p align="center"><img src="images/account-settings.png" width="400px" height="240px" /></p>
+ <p>
+ Пункт меню <b>"Настройка приложения"</b> позволяет установить некоторые специальные настройки приложения.
+ Пункт <b>"Включить поворот окна"</b> доступен только для мобильных устройств.
+ Он позволяет приложению реагировать на изменения положения устройства в пространстве и
+ активировать горизонтальный или вертикальный режим работы.
+ Пункт <b>"Включить многопанельный режим"</b> контролирует количество панелей на главной форме приложения.
+ Если этот пункт меню активен, то главная форма приложения состоит из двух панелей. Справа отображается
+ текущая панель (например, список изображений в альбоме), слева - предыдущая панель (список альбомов пользователя). Если же данный пункт не активен, то на главной форме отображается только текущая панель. Данная настройка полезна для устойств с малым экраном, таких как мобильные устройства. Кнопка <b>"Очистить кэш"</b> позволяет очистить кэш приложения для освобождения ресурсов устройства.
+ </p>
+ <p align="center"><img src="images/program-settings.png" width="400px" height="240px" /></p>
+ </td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td><table width="92%" border="0" align="right" cellpadding="0"
+ cellspacing="0">
+ <tr>
+ <td class="copybox"> MySocials Gallery © 2011</td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td height="10"> </td>
+ </tr>
+</table>
+</body>
+</html>