2013-08-17 2 views
3

У меня есть сайт с закрытой бета-версией, который отключает обычные посещения - посетители должны сначала войти в систему, чтобы просмотреть сайт. У меня также есть секретная группа Facebook, в которой мы часто используем ссылки на статьи веб-сайта (для обсуждения). Проблема в том, что когда мы вставляем ссылку, Facebook пытается получить ее предварительный просмотр и терпеть неудачу, так как считается не зарегистрированным пользователем. Короче говоря, я бы хотел, чтобы сайт был общедоступным только для Facebook. Это решения, которые я придумал:Определить Facebook как реферер?

  1. Обнаружение реферера: не работает, реферер пуст - может быть, потому, что FB просматривает сайт с HTTP-адресов?
  2. Обнаружение клиента IP: Не уверен в этом. Есть ли у FB-сервера фиксированный IP-адрес?
  3. Поиск о «строке запроса Facebook», которую использует FB при просмотре моего сайта - что-то вроде mysite.com/?from=I'm-Facebook-Bitch: результатов пока нет.

Что вы думаете? Есть ли надежный способ выполнить эту миссию? Заранее спасибо.

ответ

4

OK Я нашел решение здесь: https://developers.facebook.com/docs/reference/plugins/like/

Вместо проверки IP или реферер, мы можем проверить агент пользователя ($_SERVER['HTTP_USER_AGENT']) в FB скребка. Значение facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)

Надеюсь, что это поможет кому-то еще.

+0

Если это было ваше решение, обязательно отметьте его как правильный ответ на вопрос. –

0

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

Тогда Facebook может получить доступ без какой-либо секретной магии вуду - и у «закрытой» группы есть доступ к статье.

Например:

www.example.com/articles/my-article <- you need to be logged in to see this 

www.example.com/special-hidden-link/special-hidden-article <- no login required 

Так просто опубликовать «скрытую ссылку» в группу Facebook - и все они могут увидеть статью

+0

Спасибо, но это на самом деле больше вуду, чем реальное решение. Я не могу ожидать, что все члены группы (большинство из них не являются техническими) добавят параметр в URL-адреса. –

+0

Я не думаю, что вы поняли - см. Мой пример. – Laurence

+0

Кроме того - это, в основном, единственное решение, потому что, если вы публикуете «ссылку» на Facebook, любой (включая facebook) должен иметь возможность получить эту ссылку без входа в систему - вот и вся ваша проблема. Итак, есть ли у вас теги refeer и т. Д. Или нет - вы в основном говорите, что люди facebook могут увидеть статью ... – Laurence

0

Добавить GET аргумент в качестве ключа, чтобы посетить веб-сайт, и установите cookie, как только ключ окажется действительным.

Смежные вопросы