Виджеты ВКонтакте на разных доменах
Добавлено: 14 авг 2012, 10:35
Виджеты ВКонтакте на разных доменах
Виджет Комментарии, виджет «Мне нравится»
Делал сайт, у которого есть основной домен (*.ru) и мобильный поддомен (m.*.ru). Мобильный поддомен дублирует содержимое основного сайта, но с другим оформлением.
Было необходимо использовать на сайте виджет комментариев ВКонтакте и виджет «Мне нравится».
После вставки кода из документации ВКонтакте, виджеты без проблем отобразились на двух версиях сайта, но проблема была в том, что оставленные комментарии и лайки на этих сайтах были по отдельности. Комментарий оставленный на полной версии сайта не был доступен на мобильной версии.
О чем говорит документация:
Полная документация по работе виджета Комментарии
Полная документация по работе виджета «Мне нравится»
Сначала я подумал использовать этот page_id.
В описании виджета Комментарии
Для генерации page_id я использовал md5 от адреса страницы без имени домена. Это решило проблему с отличиями виджетов на основном и мобильном домене. Но я решил попробовать просто указать в настройках виджетов pageUrl.
Разные домены
Иногда бывает, что сайт доступен по разным адресам, например domen.ru и domen.com. На данный момент функционал виджетов ВКонтакте не позволяет решить проблему вывода общего виджета на разных доменах.
Если это ваша ситуация, то задумайтесь о том, чтобы сделать основным какой-то один домен и просто переадресовывать на него с другого домена.
Можно сделать генерацию виджета на основном домене, и уже сгенерированный виджет встроить на другой домен, но это неудобный способ. Лучше попробовать связаться с администрацией ВКонтакте.
Виджет Комментарии, виджет «Мне нравится»
Делал сайт, у которого есть основной домен (*.ru) и мобильный поддомен (m.*.ru). Мобильный поддомен дублирует содержимое основного сайта, но с другим оформлением.
Было необходимо использовать на сайте виджет комментариев ВКонтакте и виджет «Мне нравится».
После вставки кода из документации ВКонтакте, виджеты без проблем отобразились на двух версиях сайта, но проблема была в том, что оставленные комментарии и лайки на этих сайтах были по отдельности. Комментарий оставленный на полной версии сайта не был доступен на мобильной версии.
О чем говорит документация:
И примерно то же самое в документации по виджету «Мне нравится».Комментарии различны для каждого уникального адреса на Вашем сайте. Если статья на Вашем сайте может иметь различные адреса (например, в зависимости от источника перехода, языка или других параметров), то в VK.Widgets.Comments последним параметром нужно передавать Ваш внутренний идентификатор страницы - page_id. Пример кода с page_id Вы найдете в полной документации о виджете.
Полная документация по работе виджета Комментарии
Полная документация по работе виджета «Мне нравится»
Сначала я подумал использовать этот page_id.
В описании виджета Комментарии
В описании виджета «Мне нравится»page_id
Идентификатор страницы на Вашем сайте. Произвольная строка до 128 символов, либо число. Используется в том случае, если у одной и той же статьи может быть несколько адресов, а также на динамических сайтах, у которых меняется только хеш. Значение по умолчанию равно контрольной сумме от location.href.
Несмотря на описание в виджете «Мне нравится», page_id как и в виджете комментариев может быть произвольной строкой, а не только числом.page_id
Идентификатор страницы на Вашем сайте. Целое 32хразрядное число. Используется в том случае, если у одной и той же статьи может быть несколько адресов, а также на динамических сайтах, у которых меняется только хеш. Значение по умолчанию - контрольная сумма от location.href.
Для генерации page_id я использовал md5 от адреса страницы без имени домена. Это решило проблему с отличиями виджетов на основном и мобильном домене. Но я решил попробовать просто указать в настройках виджетов pageUrl.
pageUrl: адрес страницы с виджетом, на которую ссылается статус в случае, когда включена автоматическая трансляция комментария в статус. (Необязательный параметр)
Я указал адрес на страницу основного домена. И это тоже решило проблему. Я остановился на этом способе. В моём случае мне он показался лучше, чем использование page_id.pageUrl: задает адрес страницы (для отображении у записи на стене). Указывайте в том случае, если адрес статьи отличается от адреса, на котором отображается кнопка "Мне нравится".
Код: Выделить всё
<? $page_url = 'example/';?><script type="text/javascript" src="http://userapi.com/js/api/openapi.js?24"></script><div id="vk_like"></div><div id="vk_comments"></div><script type="text/javascript"> VK.init({apiId: 743131, onlyWidgets: true}); VK.Widgets.Comments("vk_comments", {limit: 10, attach: "*", pageUrl: "http://flapps.ru/<?=$page_url?>"}); VK.Widgets.Like("vk_like", {type: "button", pageUrl: "http://flapps.ru/<?=$page_url?>"});</script>
Разные домены
Иногда бывает, что сайт доступен по разным адресам, например domen.ru и domen.com. На данный момент функционал виджетов ВКонтакте не позволяет решить проблему вывода общего виджета на разных доменах.
Если это ваша ситуация, то задумайтесь о том, чтобы сделать основным какой-то один домен и просто переадресовывать на него с другого домена.
Можно сделать генерацию виджета на основном домене, и уже сгенерированный виджет встроить на другой домен, но это неудобный способ. Лучше попробовать связаться с администрацией ВКонтакте.
http://habrahabr.ru/post/104129/Как быть если у меня на одном сайте пишут с нескольких доменов?
mysite.com, mysite.ru, mysite.net.
И хочу чтобы айди приложения был один, привязан ко всем доменам моим
---
invladis 13 сентября 2010 в 19:11
На данный момент общего интерфейса нет, но можете прислать мне список доменов и id приложения. Мы делаем тестовый запуск с изданием vz.ru, например, и у них возникла та же проблема. Пока решаем ее вручную.