Наш клиент хотел бы отслеживать, когда пользователи делятся ссылками друг с другом (через Facebook, Twitter, электронную почту и т. Д.), И вознаграждать человека, который первоначально поделился ссылкой. В настоящее время мы отслеживаем с помощью параметра URL-адреса, который содержит идентификатор пользователя, т.е.
http://www.customer.com/items/item1?sharedBy=user1
поэтому, когда пользователь нажимает на эту ссылку, мы в настоящее время публикуем стандартную запись на стене с этим URL. Когда друзья пользователя user1 переходят по этой ссылке, мы можем прочитать параметр sharedBy и дать пользователю user1 некоторую оценку рефералу.
Мы также переносим некоторые наши действия из стандартных сообщений на стене в новые действия OpenGraph, что создает проблему. Чтобы быть распознанным Facebook, объект opengraph имеет метаданные, подобные следующим:
<meta property="fb:app_id" content="MY_APP_ID" />
<meta property="og:title" content="test item 1" />
<meta property="og:type" content="mynamespace:item" />
<meta property="og:url" content="http://www.customer.com/items/item1" />
<meta property="og:image" content="http://img.fark.net/images/2011/site/farkLogoBig.png" />
Независимо от того, какой URL я отправляю в Facebook, он будет использовать канонический URL (тег og: url) при создании ссылки. Итак, у меня нет параметра отслеживания.
Я могу придумать пару способов взломать это:
- Динамически генерирует значение og: url для соответствия любому URL-адресу, который просматривает Facebook. Я бы предпочел не ставить больше накладных расходов на реализацию всем своим клиентам (многие из которых недостаточно разбираются в технологиях, чтобы реализовать это без значительных затрат ресурсов). Также кажется, что Facebook может возразить против этого, поскольку он будет в основном обрабатывать каждый URL как отдельный объект, даже если они действительно одинаковы.
- Facebook самостоятельно добавляет параметр fb_action_ids в URL. Я мог бы получить их через API-интерфейс Graph и извлечь из него идентификатор пользователя facebook, а затем согласовать этот идентификатор с внутренними идентификаторами пользователей. Не хотел бы писать весь этот дополнительный код вместо повторного использования того же параметра, который использует любой другой механизм совместного использования.
Есть ли какой-то третий метод, который я не вижу, который позволил бы мне принудить Facebook добавить дополнительные параметры в свою ссылку на мою страницу?