2012-06-18 4 views
0

Мой сайт на Wordpress (dev: volved.dyndns-blog.com) позволяет пользователям приглашать друзей через Facebook. Когда приглашение отправляется через вызов отправки сообщения fb.ui, в качестве параметра ссылки добавляется следующее.Использование fb.ui для отправки ссылки с параметром

http://volved.dyndns-blog.com/login/?action=register&invite_id= {3CBBBEB8-6ACF-4319-AF07-3B6C22C1091D}

Параметр "invite_id" обычно вызывает переадресацию. После обнаружения того, что Facebook вернет ошибку сервера 500, когда увидит перенаправление, я изменил код, чтобы обнаружить «facebook» в пользовательском агенте и не выполнять перенаправление. Тем не менее, вызов fb.ui не работает. Моя работа по отладке затруднена, потому что кажется, что в некоторых случаях FB даже не тестирует ссылку. Он просто терпит неудачу с кодом 500. Возможно, это связано с некоторым кэшированием. Я еще не понял шаблон, но, похоже, это происходит после неудачного пинга FB моего сайта. Если я попробую позже, я увижу FB, попав на сайт.

  1. Есть ли другие условия, которые могут вызвать ошибку сервера 500 на fb.ui send?
  2. Выполняет ли FB последующие попытки без попадания на запрашивающий сайт?

ответ

1

Ничего себе. Спасибо инженерам Facebook, чтобы сэкономить 5 минут на время документации, чтобы я и другие могли тратить часы. Я расскажу, что я нашел. Если другие находят дополнительную или более точную информацию, не стесняйтесь комментировать.

Оказывается, FB проверяет OG: Url, который он получает при переходе на мою fb.ui ссылку отправки http://my.domain/page/?invite=xyz.

OG: URL должен быть «http: //my.domain/page». Параметр (ы) игнорируются. Переадресации не допускаются. В моем случае в любое время, когда страница имеет параметр invite_id, она перенаправляется. Проверка пользовательского агента запросов позволила обнаружить бот FB. Тем не менее, я обнаружил, что иногда FB также отправляет битлобот. Поэтому вы тоже должны это поймать. Скорее всего, что-то сломается, если другой бот будет использоваться в будущем.

У вас есть один шанс проверить каждый URL, потому что FB будет кэшировать результат. Если вы попробуете еще раз, FB не проверит ссылку. Если fb.ui преуспел, он будет продолжать преуспевать. В противном случае он будет продолжать сбой. Это кэширование длится - ну, мы просто должны угадать.

Надеюсь, это поможет. Время снова стать продуктивным ...

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