Запрашивает код диалога ничего не делает - PullRequest
2 голосов
/ 03 декабря 2011

Этот код ничего не делает.Я заменил YOUR_APP_ID своим идентификатором приложения, ввел этот код в новый файл, и он ничего не выводил.Я что-то упустил?

  <div id="fb-root"></div>
  <script src="http://connect.facebook.net/en_US/all.js">
  </script>
  <script>
     FB.init({ 
        appId:'YOUR_APP_ID', cookie:true, 
        status:true, xfbml:true 
     });

     FB.ui({ method: 'apprequests', 
        message: 'Here is a new Requests dialog...'});
  </script>

Я получил отсюда: https://developers.facebook.com/blog/post/453

ОБНОВЛЕНИЕ: Код работает отлично для холста, но для вкладки страницы просто загрузите предложите друзьям диалоговое окно и выходыбез отправки приглашения.

1 Ответ

4 голосов
/ 03 декабря 2011

Может произойти несколько вещей:

1) Всплывающее окно блокируется

Чтобы это исправить, вам нужно запустить запрос на действие пользователя. В противном случае большинство браузеров блокируют автоматические всплывающие окна при загрузке страницы. Попробуйте это:

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<a href="#" onclick="apprequest()">Do request</a>
<script>
     FB.init({appId:'YOUR_APP_ID', cookie:true,status:true, xfbml:true});
     function apprequest () {
         FB.ui({ method: 'apprequests',
            message: 'Here is a new Requests dialog...'});
     }
</script>

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

FB.ui({ method: 'apprequests','display':'iframe',
    message: 'Here is a new Requests dialog...'});

2) Библиотека FB JS еще не загружена

Это действительно будет проблемой, только если вы используете метод асинхронной загрузки , который вы не используете в этом примере. Но если это так, и вы видите ошибку «FB не определено» в консоли JavaScript, то вам просто нужно убедиться, что у вас есть либо всплывающий триггер запроса на пользовательское событие (как ссылка выше), либо вызовите его в асинхронный обратный вызов.

Удачи!

...