Как получить ВКонтакте Api ID? Подписка на новости

Приложения групп - это кроссплатформенные приложения, которые запускаются со страницы групп ОК или из публикаций в ленте.
Пользователь может открыть приложение в полной версии сайта, в мобильной версии m.ok.ru и в мобильных приложениях ОК для iOS и Android.
С технической точки зрения, это HTML приложение, запускаемое в iframe на полной версии сайта, во WebView в мобильных приложениях или в отдельной вкладке мобильного браузера.

В процессе разработки своего приложения для групп вам понадобятся следующие руководства:

Регистрация приложения

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

  1. Зарегистрироваться на портале ОК и привязать к своему аккаунту email – на этот email будут приходить письма, содержащие регистрационные данные приложений.
  2. Получить права разработчика по ссылке https://ok.ru/devaccess .
  3. После получения прав разработчика откройте раздел Игры и в левом меню выберите “Мои загруженные”. В списке нажмите Добавить приложение: https://ok.ru/dk?st.cmd=appEdit и нажмите кнопку Добавить платфому.
  4. Для регистрация приложения для групп укажите платформы: Web(HTML) , HTML(Mobile) и Приложение для групп . Укажите размеры приложения (они будут применяться для открытия на полной версии сайта).
  5. Указать официальную группу приложения и ID топика, в котором подробно рассказывается, как пользоваться и настроить приложение, рассматриваются популярные примеры использования.
  6. Указать специфичные для приложения групп параметры: кнопка запуска по-умолчанию, возможность открывать на отдельной странице, устанавливать по прямой ссылке и ограничить приложение только для модераторов групп.

Параметры запуска

Кроме перечисленных при запуске приложения со страницы группы, будут передаваться дополнительные параметры:

Параметр viewer_type (роль пользователя в группе) может иметь следующие строковые значения:

Используя параметр viewer_type вы можете определять роль пользователя, например, чтобы отображать специальный интерфейс для администраторов и модераторов группы.

Дополнительные параметры

Чтобы при запуске передать в приложение произвольные параметры, используйте при генерации ссылки query часть ссылки после символа?, укажите необходимые параметры.

Например,

https://ok.ru/group/1111111111111/app/77777777777?param1=545435345¶m2=HELLO

Данные после? будут переданы при запуске приложения в параметре custom_args .
Запуск приложения со своим кастомными параметрами может использоваться для запуска приложения из публикаций в ленте на конкретное состояние приложения. Например, на конкретный тест, анкету, услугу и т.д.

Отправка личных сообщений

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

  • Когда приложение будет запущено администратором группы (с viewer_type=ADMIN ), запросить право на отправку личных сообщений от имени группы. Используя Javascript SDK , вызвать виджет запроса пермиссии. Пример вызова:

OKSDK.Widgets.askGroupAppPermissions(‘GROUP_BOT_API_TOKEN’, return_url);

    Если администратор нажмет “Разрешить” , в API_callback (см. FAPI JS) или на return_url придет access_token для работы с BotAPI .
    Токен можно получить один раз и запомнить на стороне приложения, но администратор может в любой момент его инвалидировать через Настройки группы .

    У пользователя запросить разрешение на отправку сообщений от группы, используя Javascript SDK вызвать виджет запроса пермиссии.
    Пример вызова:

OKSDK.Widgets.askGroupAppPermissions(‘MESSAGES_FROM_GROUP’, return_url);

  • Использовать Bot API для отправки сообщений пользователям.
    Для посылки сообщения необходимо отправить POST запрос в формате JSON на url (используя access_token полученный на первом шаге):

https://api.ok.ru/graph/me/messages/chat:C3ecb9d02a600?access_token=TOKEN

  • Отправка текстового сообщения
{ "recipient" : { "user_ids" : [ "user:1111111111111" , "user:222222222222" , "user:3333333333333" ] }, "message" : { "text" : "Привет" } }
  • Отправка сообщения с фото
{ "recipient" : { "user_ids" : [ "user:1111111111111" , "user:222222222222" , "user:3333333333333" ] }, "message" : { "attachment" : { "type" : "image" , "payload" : { "url" : "https://st.mycdn.me/res/i/ok_logo.png" } } } }

В одном запросе можно передать максимум 100 получателей сообщения. В ответ придёт JSON массив true/false , кому получилось отправить сообщение.

Публикация постов в ленты пользователей и группу

Для публикации постов в ленты пользователей и группу (в том числе с блоком ссылки на игру с картинкой), предлагаем использовать виджет публикации из Javascript SDK :

OKSDK . Widgets . post ( return_url , { "attachment" : { "media" : [ { "type" : "text" , "text" : "Hello, world!" }, { "type" : "link" , "url" : "http://ok.ru/group/11111111111/app/22222222222?param1=AAAAAAAAAAA" , "imageUrl" : "http//yoursite.com/640x320.png" , "buttonKey" : "ANSWER" } ] }, "groupId" : 777777777777 } );
  • Для публикации поста в группу, естественно, приложение должно быть запущено от имени админа или модератора группы.
  • Если не передавать groupId, то пост опубликуется в ленту пользователя.
  • Размер картинки должен быть не меньше 640x320. Для лучшего отображения на всех платформах без обрезаний рекомендуем использовать горизонтальные картинки с пропорцией сторон 2:1 (идеально именно 640x320).
  • Для публикации используется аналогичный формат параметра attachment, как и в методе mediatopic.post .
  • Значения для параметра buttonKey: RUN, PLAY, OPEN, LINK, VIEW, READ, CALL, LISTEN, JOIN, WRITE, MORE, BUY, BUY_TICKET, FILL, CONTACT, ANSWER, PASS_TEST, ENROLL

Передача заголовка, описания и картинки при публикации ссылки

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

Заголовок блока ссылки составляется на основе тега: ,<br> описание - на основе тега: <meta name="desсription"> ,<br> картинка - на основе тега: <meta property="og:image" content="url"/> , либо из картинок, найденных в коде запрашиваемой страницы.</p><p>При отсутствии этих тегов или если страница вернула ошибку, веб-граббер возьмет заголовок и описание из метаданных приложения в ОК, а картинку предложит загрузить пользователю самостоятельно.</p><p>При запросе на сайт приложения за данными для блока ссылки, веб-граббер составит анонимный запрос без данных сессии и пользователя, передавая только следующие параметры:</p><p>При вызове добавляется параметр <i>grabber=1 </i>. По этому признаку можно определить, что запрос с веб-граббера и приложению не обязательно выдавать весь <i>html </i>, ограничившись лишь <i>title </i>, <i>description </i> и <i>image </i> в <i>head </i>-е кода страницы.</p><h2>Установка приложения с внешнего сайта по прямой ссылке</h2><p>Вы можете разместить на своем сайте кнопку для установки приложения в группы пользователя. Используйте ссылку такого вида:</p><p>https://ok.ru/appinstall/APP_ID</p><p>Здесь APP_ID - ID приложения.</p><p>Также рекомендуем использовать этот виджет установки приложения, в случаях, когда приложение было запущено без параметра group_id. Например, пользователь запустил его из списка приложений, а не из группы. В этом случае рисовать красивую заглушку и кнопку с ссылкой на этот виджет.</p><h2>Переход по внешней ссылке из приложения (открытие в браузере из мобильного приложения)</h2><p>Групповые приложения в наших Android/iOS мобильных приложениях открываются во WebView и визуально выглядят, как часть нашего приложения.<br> В большинстве приложений вызов каких-то страниц не во WebView, а в браузере - не понадобится.<br> Но иногда, например, когда приложение использует свой механизм оплаты - мы не разрешаем открывать внутри WebView такие страницы. Пользователь должен четко понимать, что он производит оплату не в Одноклассники, а напрямую в ваш сервис.</p><p>Такие страницы должны быть открыты на мобильных приложениях в браузере.<br> Для этого нужно:</p><ul><li>При инициализации Javascript SDK передать параметр <b>use_extlinks: true </b>. Например:</li> </ul>var config = { app_id : 0 , app_key : "" , use_extlinks : true }; OKSDK . init (config , function () { //on success }, function (error ) { //on error }); <ul><li>Пометить ссылку классом <b>js-sdk-extlink </b>. Например:</li> </ul><p>Заплатить</p><h2>Модерация и размещение в каталоге</h2><p>Список всех приложений, которые доступны для добавления в свои группы, администратор может просмотреть в разделе <i>«Настройки» </i> -> <i>«Приложения» </i>.</p><p>В этот каталог попадают только одобренные приложения, которые соответствуют Правилам размещения групповых приложений .<br> Чтобы подать заявку на модерацию и разместить свое приложение в каталоге, создайте заявку на странице модерации с указанием платформы <i>“Приложение групп” </i>.<br> В заявке должна содержаться вся необходимая информация о приложении.</p> <p>Началось всё с того, как мой друг попросил меня опубликовать на его странице от его имени пост с моего iPad"а. Дальше я… Не знаю, как это описать… А потом задумался о том, как же официальные приложения ВК для мобильных устройств и планшетов выполняют какие-либо действия.</p><p>Сначала подумал, что приложение отправляет через POST или GET во ВКонтактик какие-то данные. Потом понял, что, скорее всего, приложение авторизуется через API. Зашёл на страницу «Разработчикам» в ВК, выбрал «Standalone/Mobile-приложения», выбрал «OAuth-авторизация». Увидел, как приложение должно авторизовываться. Оно должно создавать окно с диалогом авторизации, с такой ссылкой:<br>oauth.vk.com/authorize?client_id=APP_ID&scope=PERMISSIONS&redirect_uri=REDIRECT_URI&display=DISPLAY&v=API_VERSION&response_type=token <br> Итак, сначала нужно узнать id официального приложения.</p><p>Я решил начать с приложения для iOS, а именно для iPad.<br><br> Запостил на своей стене запись с него, открыл на десктопе. Навёл мышку на значок Яблока, и увидел желаемое «vk.com/app3682744». С этим, самым простым, мы справились. Права я решил установить только доступ к стене (и, автоматически, к основной информации), если что-то надо будет ещё добавить, это можно будет сделать потом. И, конечно, нужно включить кроме «wall» ещё и «offline» - доступ к API в любое время со стороннего сервера. Иначе, делать что-либо сможет только сервер, куда приложение отсылает все действия, и через который всё делается (возможно этот сервер - сервер ВК, но я решил не выяснять, так как это мне не нужно. Сервер прописывается в настройках приложения). И так, сейчас наша ссылка выглядит как oauth.vk.com/authorize?client_id=3682744&scope=wall ,offline&redirect_uri=REDIRECT_URI&display=DISPLAY&v=API_VERSION&response_type=token<br> С redirect_uri разберёмся потом, как с самым сложным. «display» - внешний окна авторизации, page, popup или mobile. Выберем page.<br> «v» выставим последнюю, 5.7. response_type изменять не нужно, нам получить токен и надо. </p><p>Теперь будем думать над «redirect_uri». Нам нужна страница, которая покажет токен. И тут я замечаю «Если Вы разрабатываете браузерное Javascript-приложение...». Понимаю, что именно это нам подходит, так как мы обращаемся со «стороннего сервера». Там написано, что в таком случае надо указать «oauth.vk.com/blank.html ». Так и сделаем. Теперь наша ссылка выглядит так: oauth.vk.com/authorize?client_id=3682744&v=5.7&scope=wall ,offline&redirect_uri=http://oauth.vk.com/blank.html&display=page&response_type=token</p><p>Нажимаем на «разрешить».</p><p><img src='https://i2.wp.com/habrastorage.org/files/b78/4bb/732/b784bb7325dc44bb853d67af4bcd2955.jpg' width="100%" loading=lazy></p> <p>Здравствуйте дорогие мои читатели блога. Сегодняшнюю статью я хотел бы посвятить получению Api id номера от ВКонтакте. Может кто то спросит, а зачем он вообще нам нужен и чем он полезен блогу?</p> <p>План сегодняшней статьи не большой</p> <blockquote><p>Для чего нужен api id блогу?</p> <p>Как его получить?</p> </blockquote> <h1>Для чего нужен api id Вконтакте блогу на WordPress.</h1> <p>Api id номер может понадобиться для социальных плагинов. Люди оставляя лайки и комментарии, через кнопки и виджеты вконтакте, должны связаться с сервером, чтобы VK.COM знал, на каком сайте оставляют комментарии или лайки его зарегистрированные пользователи.</p> <p>Так же этот номер нужен, чтобы людям не требовалось вводить свои данные. Но основа этого номера- это работа социальных плагинов на сайте под управлением WordPress</p> <h2>Как его получить?</h2> <p>Вот и подошли к главному. Как же получить api id Вконтакте?</p> <p>Для этого нужно перейти в <span>раздел разработчиков </span>, Далее нажать создать приложение, в появившемся окне выбрать вкладку Вэб-сайт, так же вводим название вашего приложения, адрес вашего сайта и базовый домен.<span><br><img src='https://i2.wp.com/blograbotainternet.ru/wp-content/uploads/2015/11/vkip.jpg' align="center" width="100%" loading=lazy></p> <blockquote><p>Адресом будет — http://mysite.ru</p> <p>Базовый домен — mysite.ru</p> <p>mysite — адрес вашего сайта</p> </blockquote> <p><br><img src='https://i0.wp.com/blograbotainternet.ru/wp-content/uploads/2015/11/%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5.jpg' align="center" width="100%" loading=lazy></p> <p><br><img src='https://i1.wp.com/blograbotainternet.ru/wp-content/uploads/2015/11/%D0%BF%D0%BE%D0%B4%D1%82%D0%B2%D0%B5%D1%80%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5.jpg' align="center" width="100%" loading=lazy></p> <p>После подтверждения номера телефона вы попадёте на страницу с информацией о вашем приложении, нужно нажать вкладку настройки и попадаем на страницу, где и лежит наш api id ВКонтакте.</p> <p><br><img src='https://i0.wp.com/blograbotainternet.ru/wp-content/uploads/2015/11/%D0%BA%D0%BB%D1%8E%D1%87%D0%B8.jpg' align="center" width="100%" loading=lazy></p> <p>Пользуйтесь на здоровье. Надеюсь вы получили для себя полезную информацию. До скорых встреч дорогие читатели.</p> <p>Подписывайтесь на обновления блога, чтобы не пропустить выход новых статей.</p> <p>С уважением С.Васильев</p> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy>");</script> </div> </div> </article> </div> </div> <div id="secondary"> <aside id="search-2" class="widget widget_search clearfix"> <form action="/" class="search-form searchform clearfix" method="get"> <div class="search-wrap"> <input type="text" placeholder="Поиск" class="s field" name="s"> <button class="search-icon" type="submit"></button> </div> </form> </aside> <aside id="recent-posts-2" class="widget widget_recent_entries clearfix"> <h3 class="widget-title"><span>Свежие записи</span></h3> <ul> <li> <a href="/reviews/simvol-zapyataya-sverhu-stavim-verhnyuyu-zapyatuyu-na-klaviature-pri/">Ставим верхнюю запятую на клавиатуре при помощи комбинации клавиш</a> </li> <li> <a href="/security/chto-delat-esli-ne-rabotaet-pk-kompyuter-vklyuchaetsya-no-slyshen/">Компьютер включается, но слышен сигнал</a> </li> <li> <a href="/error-itunes/kak-sozdat-temu-dlya-windows-kak-sozdat-temu-oformleniya-temy-dlya-windows-7/">Как создать тему оформления Темы для windows 7 создать самому</a> </li> <li> <a href="/instructions/voevodin-mihail-viktorovich-voevodin-mihail-viktorovich-otryvok/">Воеводин михаил викторович Отрывок, характеризующий Воеводин, Михаил Викторович</a> </li> <li> <a href="/malfunction/blog-o-tvorchestve-i-vdohnovenii-istochniki-vdohnoveniya-blog-oli-orlovoi/">Блог о творчестве и вдохновении</a> </li> <li> <a href="/the-sounds-and-music/desyatichnyi-klassifikator-udk-isbn-udk-bbk-shtrihovye-kody-vyhodnye/">ISBN, УДК, ББК, штриховые коды, выходные данные</a> </li> <li> <a href="/malfunction/kak-ispolzovat-telefon-kak-modem-kak-prokachat-svoi-smartfon/">Как прокачать свой смартфон</a> </li> <li> <a href="/instructions/naselenie-kalpe-kalpe-calpe-kosta-blanka-alikante-osnovnye-dostoprimechatelnosti-kalpe/">Кальпе (Calpe), Коста-Бланка, Аликанте</a> </li> </ul> </aside> <aside id="text-5" class="widget widget_text clearfix"> <div class="textwidget"> <script type="text/javascript" src="//vk.com/js/api/openapi.js?144"></script> <div id="vk_groups"></div> </div> </aside> <aside id="text-4" class="widget widget_text clearfix"> <div class="textwidget"> </div> </aside> <aside id="text-3" class="widget widget_text clearfix"> <div class="textwidget"> </div> </aside> </div> </div> </div> <footer id="colophon" class="clearfix"> <div class="footer-socket-wrapper clearfix"> <div class="inner-wrap"> <div class="footer-socket-area"> <div class="footer-socket-right-section"> </div> <div class="footer-socket-left-sectoin"> <div class="copyright">© 2024 <a href="/" title="olegshein.ru"><span>olegshein.ru</span></a>. Компьютерный клуб Олега Шейна.<br></div> </div> </div> </div> </div> </footer> <a href="#masthead" id="scroll-up"><i class="fa fa-chevron-up"></i></a> </div> <script type="text/javascript"> var q2w3_sidebar_options = new Array(); q2w3_sidebar_options[0] = { "sidebar": "colormag_right_sidebar", "margin_top": 10, "margin_bottom": 0, "stop_id": "", "screen_max_width": 0, "screen_max_height": 0, "width_inherit": false, "refresh_interval": 1500, "window_load_hook": false, "disable_mo_api": false, "widgets": ['text-3'] }; </script> <script type="text/javascript"> (function(w, doc) { if (!w.__utlWdgt) { w.__utlWdgt = true; var d = doc, s = d.createElement('script'), g = 'getElementsByTagName'; s.type = 'text/javascript'; s.charset = 'UTF-8'; s.async = true; s.src = ('https:' == w.location.protocol ? 'https' : 'http') + '://w.uptolike.com/widgets/v1/uptolike.js'; var h = d[g]('body')[0]; h.appendChild(s); } })(window, document); </script> <div style="text-align:left;" data-lang="ru" data-url="/global-blue-vozvrat-tax-free-v-minske/" data-background-alpha="0.0" data-buttons-color="#FFFFFF" data-counter-background-color="#ffffff" data-share-counter-size="12" data-top-button="false" data-share-counter-type="common" data-share-style="1" data-mode="share" data-like-text-enable="false" data-mobile-view="true" data-icon-color="#ffffff" data-orientation="fixed-left" data-text-color="#000000" data-share-shape="round-rectangle" data-sn-ids="fb.vk.tw.ok.gp.ps.mr.ln." data-share-size="30" data-background-color="#ffffff" data-preview-mobile="false" data-mobile-sn-ids="fb.vk.ok.wh.vb." data-pid="cmsvpolshuby" data-counter-background-alpha="1.0" data-following-enable="false" data-exclude-show-more="true" data-selection-enable="true" class="uptolike-buttons"></div> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/pwebcontact/media/bootstrap-2.3.2/js/bootstrap.min.js?ver=2.3.2'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/pwebcontact/media/js/jquery.validate.min.js?ver=1.15.0'></script> <script type='text/javascript'> /* <![CDATA[ */ var pwebcontact_l10n = pwebcontact_l10n || {}; pwebcontact_l10n.form = { "INIT": "Initializing form...", "SENDING": "Sending...", "SEND_ERR": "Wait a few seconds before sending next message", "REQUEST_ERR": "Request error: ", "COOKIES_ERR": "Enable cookies and refresh page to use this form" }; /* ]]> */ </script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/pwebcontact/media/js/jquery.pwebcontact.min.js?ver=2.3.0'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/simple-tooltips/zebra_tooltips.js?ver=4.4.13'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/contact-form-7/includes/js/jquery.form.min.js?ver=3.51.0-2014.06.20'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver=4.5.1'></script> <script type='text/javascript'> /* <![CDATA[ */ var tocplus = { "visibility_show": "\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c", "visibility_hide": "\u0441\u043a\u0440\u044b\u0442\u044c", "width": "Auto" }; /* ]]> */ </script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/table-of-contents-plus/front.min.js?ver=1509'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/wp-cloudy/js/wp-cloudy-ajax.js?ver=4.4.13'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/mistape/assets/js/modernizr.custom.js?ver=1.3.3'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/mistape/assets/js/mistape-front.js?ver=1.3.3'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/themes/colormag/js/jquery.bxslider.min.js?ver=4.1.2'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/themes/colormag/js/colormag-slider-setting.js?ver=4.4.13'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/themes/colormag/js/navigation.js?ver=4.4.13'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/themes/colormag/js/fitvids/jquery.fitvids.js?ver=20150311'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/themes/colormag/js/fitvids/fitvids-setting.js?ver=20150311'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/q2w3-fixed-widget/js/q2w3-fixed-widget.min.js?ver=5.0.4'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.4.13'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/easy-fancybox/fancybox/jquery.fancybox-1.3.8.min.js?ver=1.6.2'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/easy-fancybox/js/jquery.easing.min.js?ver=1.4.0'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/easy-fancybox/js/jquery.mousewheel.min.js?ver=3.1.13'></script> <div id="pwebcontact1" class="pwebcontact pweb-bottom pweb-offset-right pweb-slidebox pweb-theme-free pweb-labels-above pweb-horizontal" dir="ltr"> <div id="pwebcontact1_toggler" class="pwebcontact1_toggler pwebcontact_toggler pweb-closed pweb-theme-free"> <span class="pweb-text">Есть вопросы?</span> <span class="pweb-icon"></span> </div> <div id="pwebcontact1_box" class="pwebcontact-box pweb-slidebox pweb-theme-free pweb-labels-above pweb-horizontal pweb-init" dir="ltr"> <div class="pwebcontact-container-outset"> <div id="pwebcontact1_container" class="pwebcontact-container"> <div class="pwebcontact-container-inset"> <form name="pwebcontact1_form" id="pwebcontact1_form" class="pwebcontact-form" action="/" method="post" accept-charset="utf-8"> <div class="pweb-fields"> <div class="pweb-row"> <div> <div class="pweb-field-container pweb-field-name pweb-field-name"> <div class="pweb-label"> <label id="pwebcontact1_field-name-lbl" for="pwebcontact1_field-name"> Имя </label> </div> <div class="pweb-field"> <div class="pweb-field-shadow"> <input type="text" name="fields[name]" id="pwebcontact1_field-name" autocomplete="on" class="pweb-input" value="" data-role="none"> </div> </div> </div> </div> </div> <div class="pweb-row"> <div> <div class="pweb-field-container pweb-field-email pweb-field-email"> <div class="pweb-label"> <label id="pwebcontact1_field-email-lbl" for="pwebcontact1_field-email"> Email <span class="pweb-asterisk">*</span> </label> </div> <div class="pweb-field"> <div class="pweb-field-shadow"> <input type="email" name="fields[email]" id="pwebcontact1_field-email" autocomplete="on" class="pweb-input required" value="" data-role="none"> </div> </div> </div> </div> </div> <div class="pweb-row"> <div> <div class="pweb-field-container pweb-field-textarea pweb-field-message"> <div class="pweb-label"> <label id="pwebcontact1_field-message-lbl" for="pwebcontact1_field-message"> Сообщение <span class="pweb-asterisk">*</span> </label> </div> <div class="pweb-field"> <div class="pweb-field-shadow"> <textarea name="fields[message]" id="pwebcontact1_field-message" cols="50" rows="5" class="required" data-role="none"></textarea> </div> </div> </div> </div> </div> <div class="pweb-row"> <div> <div class="pweb-field-container pweb-field-buttons"> <div class="pweb-field"> <button id="pwebcontact1_send" type="submit" class="btn pweb-button-send" data-role="none">Отправить</button> </div> </div> </div> </div> </div> <div class="pweb-msg pweb-msg-after"> <div id="pwebcontact1_msg" class="pweb-progress"> <script type="text/javascript"> document.getElementById("pwebcontact1_msg").innerHTML = "Initializing form..." </script> </div> </div> <input type="hidden" name="5eb40beb9e" value="1" id="pwebcontact1_token"> </form> </div> </div> </div> </div> </div> <script type="text/javascript"> jQuery(function() { jQuery(".tooltips img").closest(".tooltips").css("display", "inline-block"); new jQuery.Zebra_Tooltips(jQuery('.tooltips').not('.custom_m_bubble'), { 'background_color': '#000000', 'color': '#ffffff', 'max_width': 250, 'opacity': 0.95, 'position': 'center' }); }); </script> <script type="text/javascript"> jQuery(document).on('ready post-load', function() { jQuery('.nofancybox,a.pin-it-button,a[href*="pinterest.com/pin/create"]').addClass('nolightbox'); }); jQuery(document).on('ready post-load', easy_fancybox_handler); jQuery(document).on('ready', easy_fancybox_auto); </script> <div id="mistape_dialog" data-mode="comment" data-dry-run="0"> <div class="dialog__overlay"></div> <div class="dialog__content"> <div id="mistape_confirm_dialog" class="mistape_dialog_screen"> <div class="dialog-wrap"> <div class="dialog-wrap-top"> <h2>Сообщить об опечатке</h2> <div class="mistape_dialog_block"> <h3>Текст, который будет отправлен нашим редакторам:</h3> <div id="mistape_reported_text"></div> </div> </div> <div class="dialog-wrap-bottom"> <div class="mistape_dialog_block comment"> <h3><label for="mistape_comment">Ваш комментарий (необязательно):</label></h3> <textarea id="mistape_comment" cols="60" rows="3" maxlength="1000"></textarea> </div> <div class="pos-relative"> </div> </div> </div> <div class="mistape_dialog_block"> <a class="mistape_action" data-action="send" data-id="389" role="button">Отправить</a> <a class="mistape_action" data-dialog-close role="button" style="display:none">Отмена</a> </div> <div class="mistape-letter-front letter-part"> <div class="front-left"></div> <div class="front-right"></div> <div class="front-bottom"></div> </div> <div class="mistape-letter-back letter-part"> <div class="mistape-letter-back-top"></div> </div> <div class="mistape-letter-top letter-part"></div> </div> </div> </div> </body> </html>