<rmcreative>

RSS

Все заметки с тегами «Facebook, HTTP»

  1. Как Facebook подменяет ссылки

    24 мая 2012

    Наткнулся на занятную особенность Facebook. А именно на то, как он работает со ссылками.

    Для проекта потребовалось реализовать систему приглашений. Схема стандартная:

    1. Генерируем уникальный хеш.
    2. Подставляем к основному URL.
    3. Посылаем через сообщение Facebook.
    4. Получивший сообщение пользователь идёт по ссылке с хешем и видит своё приглашение.

    В процессе тестирования вроде-бы простой схемы выяснилось интересное: на шаге №4 пользователь получал сообщение без хеша.

    Первое подозрение пало на параметр, передаваемый GET-ом. Сделали частью URL и… не помогло, что сильно удивило и озадачило. Через несколько дней копаний оказалось, что при отправке сообщения:

    1. Facebook идёт по ссылке в сообщении.
    2. Парсит страницу и берёт из неё тег <meta property="og:url" content="http://example.com/content/my-stuff" />. Хеша для приглашения у нас в этом URL, конечно, не было.
    3. Подменяет ссылку, которая была в сообщении, на ту, что была получена из метатега.

    Отсюда выводы:

    1. При работе с Facebook помните про особые метатеги.
    2. Никогда не меняйте состояние приложения через GET.
    7 комментариев