У меня есть приложение Facebook Connect (IFrame, внешний сайт).
Когда я отправляю сообщение на стену пользователя, используя Старый JavaScript API (FB.Connect.streamPublish
), я указываю ссылки действий, как это делают многие люди.
Вот JSON для моей ссылки действия:
[{ 'text':'Do something on my site', 'href':'http://www.mysite.com/somerestfulpath' }]
Теперь мы используем перезапись URL-адресов на моем веб-сайте, поэтому все URL-адреса хороши и полезны (т.е. нет .ASPX).
Теперь по какой-то причине ссылка, отображаемая на стене пользователя, выглядит так:
http://www.mysite.com/somerestfulpath?ref=nf
Конечно, это 404 '.
Похоже, что для всех приложений Facebook (не только для меня) этот способ заключается в том, что для любой пользовательской ссылки на действие Facebook автоматически добавляет ref = nf к URL-адресу.
Для других частей поста (ссылки, изображения и т. Д.) Они этого не делают.
Таким образом, единственное, что я могу сделать, это изменить ссылку на URL без RESTful:
http://www.mysite.com/pages/actualpagewhichidontwantuserstosee.aspx
Тогда будет отображаться:
http://www.mysite.com/pages/actualpagewhichidontwantuserstosee.aspx?ref=nr
Что работает.
Но WTF, почему они это делают? И могут ли они не дать этим приложениям с перезаписью URL опции , чтобы они не предоставили это?
Я надеялся сохранить все URL чистыми и переписанными.
EDIT:
Мое плохое, правила регулярных выражений в переписывающем устройстве URL были неправильными. Burn.