FB.Canvas.setUrlHandler - PullRequest
       1

FB.Canvas.setUrlHandler

0 голосов
/ 09 января 2012

Кто-нибудь преуспел в использовании метода FB.Canvas.setUrlHandler, пожалуйста?

Я уже прочитал следующие URL

http://developers.facebook.com/docs/reference/javascript/FB.Canvas.setUrlHandler

http://​developers.facebook.com/blog/​post/555

но это все еще не работает ... Кто-нибудь, чтобы помочь мне, пожалуйста?

Заранее спасибо.

Вот мой исходный код, когда я его выполняю, в консоли ничего не регистрируется:

<html>
  <head>
  </head>

  <body >
    <div id='fb-root'> </div>

    <script type="text/javascript" src="http://?connect.facebook.net/en_US/?all.js"> </script>

    <script type="text/javascript">
      FB.init({
        appId : 'MY_APP_ID',
        oauth : true,
        status : true,
        cookie : true,
        oauth : true,
        xfbml: true
      });

      function testUrlHandler(data) {
        if (data.path.indexOf("test1"?) != -1) 
          console.log('test1');
        else if (data.path.indexOf("test2"?) != -1) 
          console.log('test2');
        else 
          console.log('default');
      } 

      FB.Canvas.setUrlHandler(te?stUrlHandler);

    </script>

  </body>
</html>

Ответы [ 2 ]

0 голосов
/ 13 сентября 2012

Я потратил 3 часа, пытаясь понять, что с ним не так. Иногда (действительно в редких случаях) эта штука работает просто отлично, а иногда FB api просто игнорирует этот обратный вызов.

Решение - установить обратный вызов с задержкой после инициализации, решение: Как работать с Facebook setUrlHandler?

0 голосов
/ 16 января 2012

Согласно документации, обратный вызов предназначен только для ссылок на родительский iframe (пользовательский интерфейс Facebook)

Регистрирует обратный вызов для встроенной обработки (т.е. без страницы перезагрузить) пользовательских действий, когда они нажимают на любую ссылку на текущее приложение из холста, в том числе:

  • Все истории тикеров
  • Закладки
  • Запросы из раскрывающегося списка закладок
  • Запрос уведомлений истории.

Ваши ссылки в приложении не будут запускать событие.

...