Есть одна проблема у виджета-кнопки социальной сети ВКонтакте “Мне нравится”: в настройках сайта можно указать только один домен. А если у сайта есть зеркала? Ведь на них вылезет ошибка “Invalid application domain.” на месте, где должна быть кнопка. Проблема.
Кто-то предлагает заводить каждому домену свой ID и в зависимости от hostname менять его. Но у этого способа есть один минус – для каждого домена будет свое количество лайков.
Я предлагаю другой способ. Кривой, конечно, но лучше не придумал. Нужно делать фрейм (получится фрейм во фрейме, что мне не нравится) и отдельную страницу. Код страницы примерно такой:
<html>
<head><style>body {margin:0px;padding:0px;}</style></head>
<body>
<script type=”text/javascript” src=”//vk.com/js/api/openapi.js?115″></script>
<script type=”text/javascript”>
VK.init({apiId: YOUR_APP_ID, onlyWidgets: true});
</script>
<!– Put this div tag to the place, where the Like block will be –>
<div id=”vk_like”></div>
<script type=”text/javascript”>
VK.Widgets.Like(“vk_like”, {type: “button”, pageUrl: “YOUR_PAGE_URL“});
</script>
</body>
</html>
YOUR_PAGE_URL – адрес страницы на основном домене (который указан в интерфейсе ВК, далее буду его называть YOUR_MAIN_DOMAIN). У меня цель была сделать лайки для главной страницы, поэтому мне проще чем, например, тем, кто хочет лайки к статьям и прочему контенту. Передавайте методом GET параметры, обрабатывайте их на стороне сервера и будет вам счастье .
На самом сайте в том месте, где нужна кнопка ставим фрейм:
<iframe width=”144″ height=”22″ src=”http://YOUR_MAIN_DOMAIN/vklike.htm” frameborder=”no” allowtransparency=”true” scrolling=”no”></iframe>
SRC – адрес той самой страницы на основном домене. Ее можно назвать как угодно, главное чтобы открывалась (в моем примере файл vklike.htm лежит в корне сайта). И параметры в виде GET передать можно тут ( типа ?postfix=news/1234).
Ширина виджета по умолчанию 144 px, высота 22. Если поменяли размер виджета, то фрейм тоже придется подкорректировать.
Может у вас есть более красивое решение? Поделитесь в каментах .
Миша, все хуйня (с). Заходим просто по ссылке http://vk.com/editapp?id=YOUR_APP_ID§ion=options и в поле “Базовый домен” добавляем домены. И все, нечего выдумывать всякую фигню :D. Разве что pageUrl: “YOUR_PAGE_URL” нужно прописать.
Tatiana8520 19.11.2014 в 19:23
Mrs спасибо это понятно, но зачем использовать зеркала?
ссылочная масса же делится в таком случае?
Андрей 29.11.2014 в 8:37
Хм, спасибо. Раньше тоже использовал то, что вы зачеркнули, а теперь стало намного удобнее прямо во вконтакте править.
Кирилл 2.12.2014 в 19:16
Очень полезная информация, воспользовался, спасибо!
Мария Дотсиенко 4.12.2014 в 17:36
У меня как раз есть зеркала на com и ru.Уже внедрила этот способ! Спасибо.
Василий 14.12.2014 в 1:43
“для каждого домена будет свое количество лайков” – ну а в чем проблема-то? Хочется аудиторию поразить обилием лайков? А зачем? У любого нового сайта лайков 0, но это не отпугивает посетителей.
Лично я вовсе не захотел этот виджет использовать, поставил от яндекса панельку с кнопками от нескольких соцсетей вовсе без счетчиков.
Android 20.01.2015 в 23:26
Очень полезная информация, воспользовался, спасибо!
OrlovIgor 7.03.2015 в 12:32
Большое спасибо, нужная вешь
June 8.11.2015 в 23:21
Оп-па, спасибо!
Игорь Петренко 7.01.2016 в 13:20
Миша, все хуйня (с)
Но все-равно иногда бывает проблема Invalid application domain, если сайт на домене Blogspot.com. У одного нормально работает, а у дрогого ошибка вместо виджета.
Илья 1.02.2016 в 22:08
Спасибо
Владимир 11.10.2016 в 17:52
На самом деле полезная вещь, благодарю. Тоже поставил себе как многие выше.
Илья 3.04.2017 в 14:31
Одной проблемой стало меньше. Хорошее чувство, когда долго долбился над проблемой и наконец решил. Спасибо!
Аня 9.04.2017 в 12:06
Хорошо что щас появился способ который все упращает, можно прописать прямо в самом контакте, но я использую кнопки от разных соц сетей без счётчика. А эту кнопку думаю поставить на главную страницу.
Руслан 9.06.2017 в 22:16
Спасибо!Думаю установить на своем блоге.
Павел 11.07.2017 в 10:45
хороший, полезный виджет!