Facebook перенаправить приложение с листа холста на страницу поклонников
im создает приложение facebook как приложение iframe на странице поклонников. Моя проблема на данный момент следующая: я добавил диалог запроса в facebook (http://developers.facebook.com/docs/reference/dialogs/requests), и все идет хорошо, за исключением одного: когда пользователь получает уведомление, ссылки идет на страницу холста, а не на страницу поклонников (где я бы хотел пойти...)
Так как я не могу убедить facebook добавить некоторую функциональность (это было бы здорово), им нужен способ автоматической переадресации с страницы холста приложения на страницу поклонников, где это приложение добавляется как вкладка iframe.
Я надеюсь, что кто-то поймет, что я хочу сделать...:)
спасибо, Питер
Ответы
Ответ 1
Если вы правильно поняли, вы можете сделать это:
top.location.href='http://www.facebook.com/YOUR_PAGE_NAME?sk=app_YOUR_APP_ID'
или вы можете использовать заголовок для перенаправления на этот URL-адрес. Это перенаправит вкладку приложения на странице вашего поклонника.
Ответ 2
Я также хотел удостовериться, что пользователи просматривают мое приложение Facebook через вкладку "Страница Facebook" (а не через страницу "Facebook" или непосредственно просматривают фактический сайт). Мне удалось достичь этого с помощью этого Javascript в теге <script>
в head
моего документа (протестированы Mac/PC FF, Chrome, Opera, IE6-8, Safari).
<script type="text/javascript">
function NotInFacebookFrame() {
return top === self;
}
function ReferrerIsFacebookApp() {
if(document.referrer) {
return document.referrer.indexOf("apps.facebook.com") != -1;
}
return false;
}
if (NotInFacebookFrame() || ReferrerIsFacebookApp()) {
top.location.replace("http://permalink-to-my-facebook-page-tab");
}
</script>
Ответ 3
Мое приложение довольно динамично, и я никогда не знаю, на какой странице он был добавлен. Поэтому, когда я использовал URL 'http://www.facebook.com/YOUR_PAGE_NAME?sk=app_YOUR_APP_ID', он перенаправлял меня только на страницу, но не на вкладку приложения. Что я делаю:
1) Я получаю идентификатор страницы из signed_request (зашифрованный в параметре base64url, который ваше приложение получает, когда кто-то приходит на страницу, поэтому вам нужно его расшифровать и выбрать значение id из объекта страницы JSON)
2) Затем я получаю данные страницы из https://graph.facebook.com/PAGE_ID_YOUR_GET. Вы получаете объект JSON с некоторыми данными страницы в ответ в формате JSON.
3) Только после пункта 2 я получаю "ссылку" значение страницы из ответа. Это как http://www.facebook.com/pages/Some-Page-Name
4) И, наконец, я добавляю ссылку "? sk = app_YOUR_APP_ID" на ссылку страницы.
Возможно, это слишком сложно, но это единственный способ, которым я работал у меня, как я ожидал (перенаправляя именно на вкладку приложения страницы).
Ответ 4
<script type="text/javascript">
function NotInFacebookFrame() {
return top === self;
}
function ReferrerIsFacebookApp() {
if(document.referrer) {
return document.referrer.indexOf("apps.facebook.com") == -1;
}
return false;
}
if (NotInFacebookFrame() || ReferrerIsFacebookApp()) {
top.location.replace("http://permalink-to-my-facebook-page-tab");
}
</script>