Можно ли извлечь метаданные из полученного URL-адреса вместо канонического URL-адреса?

У меня есть Facebook, который ссылается на страницу, ведь у меня нет полного контроля: я могу изменить <body>, но не <head> страницы... Поэтому я попытался установить ссылку на кнопку «Мне нравится» на новой странице. над которым у меня есть полный контроль, установите метатеги opengraph на этой странице и установите og:url, который ссылается на исходную страницу.

Но, в конце концов, Facebook пытается извлечь метаданные из og:url и переопределяет метатеги предыдущей страницы... Можно ли сказать, что я хочу извлечь метаданные из первого полученного URL-адреса, а не из og:url?


person Croch    schedule 05.04.2012    source источник


Ответы (2)


Невозможно указать линтеру извлекать метаданные OpenGraph со страницы, URL-адрес которой отличается от указанного в og:url.

Линтер всегда будет извлекать метатеги из URL, определенного в og:url в конце цепочки...

Есть способ сделать что-то другое (которое может соответствовать или не соответствовать вашим потребностям):

Вы можете создать промежуточную страницу, которая будет иметь все необходимые OpenGraph, включая og:url, указывающую на эту страницу (а не на ту, над которой вы не можете контролировать). Эта страница будет иметь только метаданные и перенаправление JavaScript/Meta на конечную страницу, поэтому пользователь, перешедший на эту промежуточную страницу, будет перенаправлен на правильную конечную страницу.

Осторожно, это привяжет все лайки не к «конечной» странице, а к промежуточной.

person Juicy Scripter    schedule 05.04.2012
comment
Спасибо, хорошее решение! Я только что поместил перенаправление javascript на первую среднюю страницу, и это работает... Я знаю, что было бы лучше поместить метаданные в заголовок последней страницы, но до того дня у меня не будет доступа к ‹head › нормально! - person Croch; 05.04.2012
comment
Спасибо, добрый господин. Это отлично работает для одностраничных приложений Javascript. Сканер Facebook не получал правильной информации, поскольку страница динамически отображается на стороне клиента с помощью Javascript, а сканер просто анализирует файл оболочки html, обслуживаемый сервером. Используя эту технику, я сделал вызов на стороне сервера, который отображает метатеги так, как они мне нужны, и в конечном итоге перенаправляет на стороне клиента мое одностраничное веб-приложение Javascript. Работает именно так, как мне нужно. Еще раз спасибо! - person CodeWarrior; 06.03.2013

Я думаю, что в отладке/линтере Facebook есть ошибка, связанная с тем, какой URL-адрес может иметь метаданные OG. Ваш OG:URL должен быть каноническим, что означает, что этот URL должен работать сегодня, завтра и через десять лет. Поскольку общий URL-адрес является временным, и веб-разработчики не могут гарантировать, что URL-адрес «выборки» сохранится. Ваш канонический / og: URL-адрес может перенаправлять на конечный пункт назначения с тегами og:.

Но ошибка в линтере FaceBook заключается в том, что он не следует перенаправлениям после og:url. т.е. http://example.com/persistant/123, где это может просто перенаправить на удобный URL, например http://example.com/year/month/title/persistant_123 . Возможно, кто-то из FaceBook может прояснить свою интерпретацию «должны ли выполняться перенаправления с канонического URL-адреса».

Мнение Google Блог Google для веб-мастеров: укажите свой Canonical

Может ли rel="canonical" быть перенаправлением? Да, вы можете указать URL-адрес, который перенаправляет как канонический URL-адрес. Затем Google обработает перенаправление как обычно и попытается его проиндексировать.

Текущая практика FaceBook Debug/Linter заключается в том, чтобы останавливаться после достижения OG:URL и не следовать стандартным перенаправлениям HTTP для доступа к тегам OG. Я думаю, что определение Google для канонического более, ну… каноническое, чем ожидают веб-разработчики.

person Peter Dietz    schedule 26.04.2012