как поймать когда фейсбук зашел на мой сайт для получения изображения ссылки? - PullRequest
1 голос
/ 22 ноября 2011

Я хочу сообщать каждый раз, когда Facebook берет изображение моего сайта и добавляет его в ссылку Как я могу поймать это событие?

спасибо.

Ответы [ 2 ]

1 голос
/ 22 ноября 2011

Igy прав в том, что вы можете проверить пользовательский агент входящего запроса от линтера Facebook и обработать его соответствующим образом. По моему опыту, вам просто нужно проверить наличие текста «facebook» в пользовательском агенте. Я не кодировал в C # некоторое время, но вот удар:

  protected bool isFacebook()
{
    if (HttpContext.Current.Request.UserAgent.ToLower().Contains("facebook"))
        return true;
    return false;
}

protected void Page_Load(object sender, EventArgs e)
{
    if (isFacebook())
    {
        Response.Write("Facebook Linter Detected");
    } else {
        // Do regular page stuff
    }
}
0 голосов
/ 22 ноября 2011

В запросе Facebook на заполнение метаданных будет пользовательский агент facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php) - определите это и зарегистрируйте его, если хотите видеть, когда кто-то делится контентом с вашего сайта в Facebook - кэш каждой страницы обновляется примерно каждые 24 часа. ч.

Вы также можете обнаружить трафик от пользователей Facebook через присутствие facebook.com в качестве URL-адреса реферера (также в заголовках запросов)

...