Как сделать программу Одноклассники

Немного цифр и соображений на тему “Имеет ли смысл делать приложение в Одноклассниках”. Короткая вводная для тех, кто не читал полную историю: у нас есть приложение “Открытки”, суть приложения понятна из названия. У приложения 20+ миллионов зарегистрированных пользователей, оно находится в топе приложений раздела “Развлечения”.

  • В месяц приложением пользуются от 3 до 5 миллионов человек.
  • Летом, когда все в отпусках и вообще лень, при помощи приложения все равно отправляется 100к открыток в сутки.
  • В пиковые моменты (например, под Новый год) люди отправляют до 25 открыток в секунду.
  • В приложении онлайн в такие моменты находится до 25 000 человек.

Картинка из внутренней статистики Одноклассников иллюстрируют портрет аудитории “Открыток”:

Как видите, в основном это взрослые люди от 30 и выше, и как правило, женщины. Это влечет за собой определенные нюансы. Они получают миллионы рублей на своем приложении.

Как написать свою программу на python? #python #программирование

Смотря на разработчиков игр, многим хочется тоже хорошей жизни. А как этого достичь? Один из самых верных способов проанализировать, что и как, и заранее узнать обо всех подводных камнях. Поэтому в статье будет рассмотрено, как можно создать свою игру в «Одноклассниках». С чего начать?

Прежде всего, необходимо определиться с множеством вопросов, среди них: на какую тему будет игра, с помощью какого движка она будет реализована, кто будет делать. Первоначально также следует определиться с целевой аудиторией и задачами, которые стоят перед вами. Это может быть игра для модниц или стратегия для полководцев, можете поработать над простой двухмерной игрой или замахнуться на трёхмерную игру.

Прорабатываем концепцию игры

Итак, есть задумка, но её необходимо проработать. Хорошо подумайте над тем, какие действия должен будет совершать человек, продумайте составляющую, чтобы человека можно было зацепить. Очень важный аспект – социальный, упускать его нельзя ни в коем случае.

КАКОЙ ЯЗЫК ПРОГРАММИРОВАНИЯ ВЫБРАТЬ?

Довольно активно стоит вопрос о том, какой язык программирования выбрать, чтобы создать игру онлайн в «Одноклассниках». На выбор есть:

  1. Ruby-On-Rails. Довольно простой язык, который позволит создавать умеренно сложные игры.
  2. HTML5 + PHP — скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов. HTML5 — язык для структурирования и представления содержимого всемирной паутины. Это пятая версия HTML. Цель разработки HTML5 — улучшение уровня поддержки мультимедиа-технологий с одновременным сохранением обратной совместимости, удобочитаемости кода для человека и простоты анализа для парсеров. В HTML5 реализовано множество новых синтаксических особенностей. Например, элементы , и , а также возможность использования SVG и математических формул. Эти новшества разработаны для упрощения создания и управления графическими и мультимедийными объектами в сети без необходимости использования сторонних API и плагинов.
  3. ActionScript. Гигант на рынке игр. Не будет преувеличением, если сказать, что 50 % всех игр, представленных в «Одноклассниках», написаны именно на этом языке программирования. Это обусловлено значительной функциональностью и удобством работы. К тому же в сети много руководств и заготовок для создания игр. Большинство разработчиков при ответе на вопрос «Как создать игру в «Одноклассниках» и на каком языке?» выбрали именно его.
  4. C#, JavaScript — если вы будите использовать Unity 3D. Unity — межплатформенная среда разработки компьютерных игр . Unity позволяет создавать приложения, работающие под более чем 20 различными операционными системами, включающими персональные компьютеры, игровые консоли, мобильные устройства, интернет-приложения и другие. Мы рекомендуем Unity.

Для добавления приложения на сайт Одноклассники необходимо:

Как сделать рассылку объявлений на доски. Рассылка объявлений по доскам/группам в одноклассниках

  1. Зарегистрироваться на портале Одноклассники и привязать к своему аккаунту email – на этот email будут приходить письма, содержащие регистрационные данные приложений.
  2. Получить права разработчика по ссылке https://ok.ru/devaccess.

После получения прав разработчика откройте раздел Игры, в левом меню выберите “Мои загруженные” и нажмите на “Добавить приложение”.

1 Название вашего приложения
2 Если ваше приложение будет использоваться для авторизации через Одноклассники, автопостинга или другого взаимодействия вне сайта Одноклассники — нажмите кнопку
3 Если вашему приложению не подходит пункт 2, и необходима какая-то особенная платформа — нажмите кнопку и попадете на расширенную форму создания приложения

Если Вы выбрали пункт 2, то в вашей форме появятся дополнительные поля

1 Иконка приложения (опциональна)
2 Список разрешенных редиректов для приложения (обязателен), если через приложение не планируется делать авторизацию, то можно указать https://api.ok.ru/blank.html
3 Выберите необходимые права для приложения
4 Сохраните свое приложение

Еще по теме:  Кто такой данкар твой бывший одноклассник

Если вы сделали всё правильно, то вы получите набор ключей и ID приложения на email, который указан в вашем аккаунте на Одноклассниках.

Ваше приложение на Одноклассниках создано!

Доступ к приложению можно получить:

  • Через меню Игры — Мои загруженные.
  • По ссылке: https://ok.ru/game/ .

Для доступа к настройкам приложения нажмите внизу ссылку “Изменить настройки приложения”:

Введите секретный ключ приложения (приходил в письме с данными) в появившийся блок:

Получение токенов доступа для создателя приложения

Для получения токенов (access_token и session_secret_key) доступа к приложению от имени своего пользователя необходимо:

  • Создать приложение, указав “Подключить OAuth авторизацию”, или изменить и сохранить настройки имеющегося приложения
  • Найти внизу страницы настроек приложения блок для генерации “Вечного access_token”:

  • Получить сгенерированную пару access_token и session_secret_key и сохранить в укромное место

Если у вашего приложения не хватает прав, то после их добавления у сгенерированных токенов их все еще не будет. Необходимо перегенерировать токены доступа после получения новых прав приложения.

Обязательно игроки должны взаимодействовать с другими.

Но при этом следует соблюдать грани разумного – ведь если будет неприятно играть из-за действий других игроков, большую аудиторию вы вряд ли насчитаете. При решении работы с людьми активным остаётся вопрос о том, как лучше настроить финансовую систему: получать небольшие деньги от большого количества людей или большие от маленького. Так что лучше — от 10 000 людей получить по 100 рублей или от 100 людей получить по 10 000 рублей. Каждый выбирает сам.

Делать самому или в команде? Активной и важной является постановка вопроса о том, как создать игру в одноклассниках: делать самому или в составе команды? При создании игры своими силами вы можете рассчитывать на получение большего количества денег. Но создавая в составе команды, вы будете более быстро продвигаться. К тому же при разработке игры самому необходимо быть очень разносторонним программистом, который не только создаёт само предложение, но и разрабатывает БД, работать с интерфейсом прикладного программирования, а также знать языки программирования, на которых будет вестись обмен данными и кодирование/декодирование данных.

Как видите, объем работы немаленький. К этому также стоит добавить необходимость поработать над графической составляющей, причем она должна быть на высоте, чтобы люди не только главное меню игры открывали и покидали её навсегда, но и чтобы играли и инвестировали в вас и ваш продукт деньги.

Интерфейс прикладного программирования

Важным является изучение интерфейса прикладного программирования и его реализация в игре. Дело в том, что именно с его помощью осуществляется взаимодействие с профилем человека в социальной сети. Хотите взять его фотографию – вам нужен интерфейс прикладного программирования! Хотите организовать оплату игровых услуг – вам тоже нужен ИФП. Хотите отправить картинку с сообщением на стену пользователю – без интерфейса прикладного программирования вам не обойтись.

Каких сложностей ожидать, если вы соберетесь сделать приложение для Одноклассников?

1. Ваше приложение могут попросту не одобрить, причем без особого объяснения причин. Поэтому перед тем, как что-то делать, внимательно изучите регламент работы приложений и получите одобрение на то, что Одноклассники в принципе могут принять приложение такого типа.

2. Правила функционирования приложений достаточно жесткие. Многих вещей делать нельзя, даже если очень хочется.

3. Сразу подумайте о техподдержке. Вопросов от пользователей будет много, даже при самом простом функционале. Если вам кажется, что вы умеете делать простые интерфейсы — аудитория Одноклассников докажет, что вы ошибаетесь.

4. Общение с техподдержкой Одноклассников по вопросам функционирования API не всегда проходит оперативно. Они используют Jira, но создавать там свой тикет по каждой проблеме не получится, придется общаться в одном большом тикете по вашему приложению, это может приводить к путанице и непониманию.

5. Вам понадобится хороший хостинг + знания по построению высоконагруженного сервиса. При удачном раскладе, конечно.

Теперь положительные моменты:

1. Аудитория, которая привыкла платить за плюшки. Специально выделяю жирным, это очень важный момент. Из общения с коллегами, которые портируют приложения в разные соцсети рунета, я сделал вывод, что Одноклассники из них самая выгодная.

2. Единая валюта (ОК), которая по факту представляет себя российский рубль. Пользователи покупают ОК разными способами (от СМС до кредиток) и тратят их в любых приложениях. Вы сами определяете когда, за что и сколько брать ОК с пользователей.

3. Внятная и железно работающая политика вывода заработанных денег. В нашем случае (компания не является резидентом РФ) Одноклассники берут себе 58% денег, переведенных пользователями на счет приложения, 42% перечисляют нам на счет в банке.

4. Достаточно хорошая “витрина” для новых приложений, которая помогает быстрому старту. Мы набрали первый миллион пользователей за 2 недели, все это время мы находились в “Новых приложениях”. Также заслуживают одобрения механизмы виральности, которые помогают распространить информацию о приложениях, установленных друзьями, пригласить друзей в игру и т.п.

5. Несмотря на сложную иерархическую структуру (Одноклассники это подразделение Mail.Ru Group), вы все равно можете достучаться до нужных вам людей. За время работы у нас не было ни одного случая, когда бы мы не решили какой-то вопрос.

Еще по теме:  На встрече выпускников бывшие Одноклассники пожали друг другу руки всего было 300 рукопожатий

Источник: xn--80ajickj6abfedo.xn--p1ai

Аутентификация через Одноклассники

Сегодня мы продолжим разговор о том, как создать аутентификацию ваших пользователей через социальные сети и сервисы. На этот раз возьмёмся за «Одноклассники»!

Если кто пропустил предыдущую часть, то её можно найти тут:

sourse

Заметка. Пример, созданный в данном уроке, предназначен для работы на локальном сервере.

Шаг 1. Регистрация нового приложения

Для работы примера вам нужно будет самим зарегистрировать новое приложение и ввести собственные параметры. Для начала нам необходимо создать новое приложение на сайте социальной сети Одноклассники

На открывшейся странице выбираем вид приложения: “Вне Одноклассников”; тип приложения: «oAuth авторизация».

После этого нам необходимо заполнить следующую форму:

Название будет «Odnoklassniki Auth». Shortname — это тоже название приложения, но только то, что будет отображаться в url адресе: «ondoklassniki-oauth». Ссылка на приложение: http://localhost/odnoklassniki-auth . Таким образом, на локальном сервере нам потребуется создать папку «odnoklassniki-auth» и поместить все рабочие файлы туда.

После добавления нового приложения, вам на электронный почтовый ящик будет отправлено письмо с нужными нам настройками.

Из письма мы можем извлечь такие параметры, как `Application ID`, `Публичный ключ приложения`, `Секретный ключ приложения` и `Ссылка на приложение`. Запишем их в специальные переменные в файле index.php:

Шаг 2. Генерация ссылки для аутентификации

Для генерации ссылки нам потребуется адрес аутентификации и специальные параметры:

$url = ‘http://www.odnoklassniki.ru/oauth/authorize’; $params = array( ‘client_id’ => $client_id, ‘response_type’ => ‘code’, ‘redirect_uri’ => $redirect_uri );

С помощью функции http_build_query, передав туда массив параметров, получим чередование ключей и значений, как в url адресе. Итак, генерируем ссылку и выводим на экран:

Также тут я воспользовался функцией urldecode. Если этого не сделать, то в сгенерированной ссылке могут появиться закодированные символы слешей, знаков двоеточия и так далее:

http://www.odnoklassniki.ru/oauth/authorize?client_id=104639696redirect_uri=http%3A%2F%2Flocalhost%2Fodnoklassniki-auth

Если же мы пропустим данную строку через функцию urldecode, то получим:

http://www.odnoklassniki.ru/oauth/authorize?client_id=104639696redirect_uri=http://localhost/odnoklassniki-auth

Итак, ссылка для аутентификации готова. Если мы сформировали все параметры правильным образом и получили верный url, то пройдя по ссылке, будем перенаправлены по адресу, указанному в настройках приложения (‘http://localhost/odnoklassniki-auth’). Только теперь к этому адресу будет прикреплён специальный параметр code:

// Пример. В вашем случае, код будет другой http://localhost/odnoklassniki-auth/?code=d7820742ac21d6206d50884b7fa6544fcafdf491029c301cfd.ebf2f661_037c622e17112e245698f29705c5c41b_1363169481

Шаг 3. Получение токена

Начинать процедуру аутентификации мы можем в том случае, если к нам пришёл параметр code. Он нам нужен для того, чтобы получить специальный токен доступа, с помощью которого, в дальнейшем, мы достанем информацию о пользователе.

В первую очередь, снова сформируем параметры для этого запроса. Нам потребуется передать параметры: `code` — url параметр, пришедший от одноклассников; `redirect_uri` — страница, на которую будет возвращён пользователь; `grand_type`, равный значению «authorization_code» — код активации; `client_id` — id приложения; `client_secret` — секретный ключ:

if (isset($_GET[‘code’])) < $params = array( ‘code’ =>$_GET[‘code’], ‘redirect_uri’ => $redirect_uri, ‘grant_type’ => ‘authorization_code’, ‘client_id’ => $client_id, ‘client_secret’ => $client_secret ); $url = ‘http://api.odnoklassniki.ru/oauth/token.do’; >

Далее нам нужно отправить POST запрос на адрес http://api.odnoklassniki.ru/oauth/token.do, передав перечисленные параметры. В PHP выполнить POST запрос можно с помощью создания curl запроса:

if (isset($_GET[‘code’])) < $params = array( ‘code’ =>$_GET[‘code’], ‘redirect_uri’ => $redirect_uri, ‘grant_type’ => ‘authorization_code’, ‘client_id’ => $client_id, ‘client_secret’ => $client_secret ); $url = ‘http://api.odnoklassniki.ru/oauth/token.do’; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); // url, куда будет отправлен запрос curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, urldecode(http_build_query($params))); // передаём параметры curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($curl); curl_close($curl); $tokenInfo = json_decode($result, true); >

В результате, при успешном выполнении запроса, в переменную $tokenInfo будет записан ответ от Одноклассников в JSON формате. Данная строка содержит 3 параметра: token_session — тип токена; refresh token — маркер обновления информации, access_token, который мы будем использовать в следующих запросах для извлечения информации о пользователе.

Для того чтобы мы далее могли работать с данными параметрами, декодируем JSON строку с помощью функции json_decode, и помещаем данные в массив, передав в качестве второго аргумента true.

Шаг 4. Получение информации о пользователе

Итак, теперь когда у нас есть параметры access_token, мы можем сделать запрос к Одноклассники API и получить информацию о пользователе. Перед тем, как мы подготовим массив с параметрами, которые в последствии превратим в фрагмент url строки, нам нужно сформировать специальную `подпись` запроса $sign с помощью конкатенации двух хэшей md5;

if (isset($tokenInfo[‘access_token’]) isset($public_key)) < $sign = md5(«application_key=format=jsonmethod=users.getCurrentUser» . md5(«»)); $params = array( ‘method’ => ‘users.getCurrentUser’, ‘access_token’ => $tokenInfo[‘access_token’], ‘application_key’ => $public_key, ‘format’ => ‘json’, ‘sig’ => $sign ); >

В параметр method записываем название метода API Одноклассников, который вернёт нам информацию о пользователе; Далее передаём access_token, публичный ключ (application_key), формат возвращаемых данных (format) и подпись запроса (sig).

Для получения информации о пользователе сформированные параметры нам нужно отправить GET запросом по адресу http://api.odnoklassniki.ru/fb.do:

if (isset($tokenInfo[‘access_token’]) isset($public_key)) < $sign = md5(«application_key=format=jsonmethod=users.getCurrentUser» . md5(«»)); $params = array( ‘method’ => ‘users.getCurrentUser’, ‘access_token’ => $tokenInfo[‘access_token’], ‘application_key’ => $public_key, ‘format’ => ‘json’, ‘sig’ => $sign ); $userInfo = json_decode(file_get_contents(‘http://api.odnoklassniki.ru/fb.do’ . ‘?’ . urldecode(http_build_query($params))), true); >

В результате, если всё было сделано правильно, то получим JSON ответ следующего вида:

Еще по теме:  Как отвязать телефон от страницы одноклассников

«uid»:»208576168129″,»birthday»:»1988-07-03″,»age»:24,»first_name»:»Станислав»,»last_name»:»Протасевич»,»name»:»Станислав Протасевич»,»locale»:»ru»,»gender»:»male»,»has_email»:true,»location»:,»current_status»:»Очередная гениальная идея! Вперёд!»,»current_status_id»:»553191546561″,»current_status_date»:»2012-11-14 23:58:50″,»online»:»web»,»pic_1″:»http://i512.odnoklassniki.ru/getImage?photoId=443580540097,»pic_2″:»http://usd13.odnoklassniki.ru/getImage?photoId=443580540097

Снова преобразуем JSON ответ в массив и обратимся к нулевому элементу, хранящемуся в массиве:

if (isset($tokenInfo[‘access_token’]) isset($public_key)) < $sign = md5(«application_key=format=jsonmethod=users.getCurrentUser» . md5(«»)); $params = array( ‘method’ => ‘users.getCurrentUser’, ‘access_token’ => $tokenInfo[‘access_token’], ‘application_key’ => $public_key, ‘format’ => ‘json’, ‘sig’ => $sign ); $userInfo = json_decode(file_get_contents(‘http://api.odnoklassniki.ru/fb.do’ . ‘?’ . urldecode(http_build_query($params))), true); if (isset($userInfo[‘uid’])) < $result = true; >>
$client_id, ‘response_type’ => ‘code’, ‘redirect_uri’ => $redirect_uri ); echo $link = ‘

Аутентификация через Одноклассники

‘; if (isset($_GET[‘code’])) < $result = false; $params = array( ‘code’ =>$_GET[‘code’], ‘redirect_uri’ => $redirect_uri, ‘grant_type’ => ‘authorization_code’, ‘client_id’ => $client_id, ‘client_secret’ => $client_secret ); $url = ‘http://api.odnoklassniki.ru/oauth/token.do’; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, urldecode(http_build_query($params))); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($curl); curl_close($curl); $tokenInfo = json_decode($result, true); if (isset($tokenInfo[‘access_token’]) isset($public_key)) < $sign = md5(«application_key=format=jsonmethod=users.getCurrentUser» . md5(«»)); $params = array( ‘method’ => ‘users.getCurrentUser’, ‘access_token’ => $tokenInfo[‘access_token’], ‘application_key’ => $public_key, ‘format’ => ‘json’, ‘sig’ => $sign ); $userInfo = json_decode(file_get_contents(‘http://api.odnoklassniki.ru/fb.do’ . ‘?’ . urldecode(http_build_query($params))), true); if (isset($userInfo[‘uid’])) < $result = true; >> > ?>

Шаг 5. Извлечение информации о пользователе

if ($result) < echo «Социальный ID пользователя: » . $userInfo[‘uid’] . ‘
‘; echo «Имя пользователя: » . $userInfo[‘name’] . ‘
‘; echo «Ссылка на профиль пользователя: » . ‘http://www.odnoklassniki.ru/profile/’ . $userInfo[‘uid’] . ‘
‘; echo «Пол пользователя: » . $userInfo[‘gender’] . ‘
‘; echo «День Рождения: » . $userInfo[‘birthday’] . ‘
‘; echo ‘‘; echo «
«; >

Шаг 6. И снова дело за вами

Тут всё, как и в предыдущем случае. Если у нас есть такая информация, как ID пользователя, в первую очередь, нам необходимо проверить его наличие в нашей базе данных. Если пользователя с таким ID не существует, то значит он авторизовался с нашего сайта впервые, и мы внесём его в базу. Если пользователь уже есть, можем проверить, не изменились ли какие-то данные о нём, например, имя или ещё что-то. Если да, обновим запись.

После этого, всё что нам осталось сделать, так это создать сессию и поместить в неё информацию о нашем пользователе.

$_SESSION[‘user’] = $userInfo;

На странице выхода из системы просто удаляем сессию с помощью функции unset .

Итог

Вот и всё. Теперь в вашей копилке на один рецепт больше, и вы можете порадовать ваших пользователей аутентификацией через социальную сеть «Одноклассники».

P.S. Отдельное спасибо хочу сказать всем, кто отписался в комментариях к предыдущей статье, ну и к этой тоже! В будущем буду стремиться учитывать ваши пожелания и предложения.

5 последних уроков рубрики «PHP»

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Источник: ruseller.com

«Одноклассники» запустили создание приложений для подписчиков групп

«Одноклассники» дали возможность разрабатывать отдельные приложения и сервисы для подписчиков групп. Теперь любая группа может добавить новые функции и инструменты для привлечения клиентов: опрос, тест, запись к специалисту и т.д. Группа может подключить сразу несколько приложений. Об этом «Роем!» сообщили в компании.

Сами приложения работают как в веб-версии ОК, так и в приложениях. Администрирование приложений доступно только в веб-версии ОК

Разработка аналогична стандартным приложениям и играм в ОК. Опубликовать собственное приложение можно будет сразу после прохождения модерации. Добавить приложение на платформу можно в разделе «Игры». Для этого нужно получить права разработчика, перейти на вкладку «Мои загруженные» и нажать «Добавить приложение».

На платформе есть открытые приложения – их могут использовать все группы. Сейчас доступны приложения для проведения тестов, опросов, сбора пожертвований и приложение сервиса Yclients для выбора мастера и записи на прием в салоне красоты. В дальнейшем появятся другие универсальные приложения для разных типов групп. Также есть закрытые приложения, которые группы разрабатывают только для своих подписчиков. Например, медицинский сервис Doc+ сделал приложения для вызова врача или онлайн-консультации со специалистом.

Семен Боярский, менеджер по развитию бизнеса ОК, говорит, что приложения пригодятся рекламодателям: «Создавая и продвигая свое приложение внутри социальной сети можно значительно уменьшить количество действий пользователя и улучшить конверсию. Избранные приложения прошедшие модерацию, смогут использовать привязанные в ОК карты для оплаты услуг, а это прямой доступ к платежеспособной аудитории».

Источник: roem.ru

Рейтинг
( Пока оценок нет )
Загрузка ...