Facebook запрашивает 2.0, как изменить URL кнопки «Принять», чтобы она была вне Facebook? - PullRequest
6 голосов
/ 25 октября 2011

Мое приложение находится за пределами холста Facebook. Диалоговое окно запроса Facebook 2.0 только перенаправляет на холст URL например. apps.ibibo.com/YOURAPP. Как я могу сделать это открыть пользовательский URL? Это было возможно в устаревшей форме FBML с fb:request-form и установкой req-url.

Запросы 2.0 ограничены только внутренними URL-адресами Facebook? Мое требование - отправлять игровые запросы, но моя игра находится за пределами Facebook. т. е. при нажатии «ПРИНЯТЬ» URL для открытия должен быть

"http://www.mydomain.com/mygame", а не

"http://apps.facebook.com/mygame".

enter image description here

Эти методы не соответствуют моим требованиям: http://developers.facebook.com/docs/reference/dialogs/requests/ (только перенаправление холста)

Я подумал об одном из обходных путей: Пользователь нажимает «ПРИНЯТЬ» и приходит к URL-адресу холста, а из URL-адреса холста я перенаправляю его на свой URL-адрес за пределами Facebook. Но я не уверен, что это соответствует политике Facebook? (упомянуто здесь в пункте № 4 первого абзаца: http://developers.facebook.com/blog/)

Ответы [ 2 ]

5 голосов
/ 03 ноября 2011

Нужен скрипт jquery, чтобы переопределить стандартную функцию facebook.Однако это работает только тогда, когда человек переходит к «http://apps.facebook.com/mygame" и нажимает« добавить приложение ».

Проще просто иметь страницу приветствия, пользователи нажимают« ИГРАТЬ », и это открывает новое окно на вашей странице..

Подробнее: http://developers.facebook.com/blog/post/525/ - кодирование удачи!

Поместите <button id="fb-auth">Login</button> где-нибудь на странице моей игры и добавьте этот код JavaScript:

function updateButton(response) {
  //Log.info('Updating Button', response);
  var button = document.getElementById('fb-auth');

  if (response.status === 'connected') {
      //button.innerHTML = 'Logout';
      button.onclick = function() {
        FB.logout(function(response) {
          //Log.info('FB.logout callback', response);
        });
      };
    } else {
      //button.innerHTML = 'Login';
      button.onclick = function() {
        FB.login(function(response) {
          //Log.info('FB.login callback', response);
          if (response.status === 'connected') {
            //Log.info('User is logged in');
            window.open("http://xxxxxxxxxxxxxxxx/some.html");
          } else {
            //Log.info('User is logged out');
          }
        });
      };
    }
};

// run it once with the current status and also whenever the status changes
FB.getLoginStatus(updateButton);
FB.Event.subscribe('auth.statusChange', updateButton);
2 голосов
/ 02 ноября 2011

К сожалению, кнопка «Принять» прямо сейчас всегда приведет вас на страницу приложения, которую вы видите, и в настоящее время нет возможности перенести ее в другое место. Вам придется перенаправить их со страницы холста. Однако я не считаю, что это противоречит политике Facebook, хотя запросы Facebook могут первоначально отправляться извне Facebook с помощью плагина iframe. Если вы хотите иметь возможность ввести внешний URL-адрес для кнопки подтверждения, я бы зарегистрировал запрос функции в Facebook.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...