приложение facebook, приглашающее друзей после завершения функции обновления статуса

я делаю приложение facebook, все вроде сделано. вот пример потока (index.php):

  1. seekpermission.php

  2. processinfo.php

  3. generateresult.php

  4. poststatus.php (способ javascript, как указано в документации)

  5. инвайтфрендс.php (способ javascript, как указано в документации)

надеюсь, имена говорят сами за себя. проблема в том, что диалог для обновления статуса и приглашения друзей появляется почти параллельно, но я хочу, чтобы после того, как пользователь публикует/пропускает сообщение о статусе, только тогда должен появиться диалог с приглашением друзей. вот что я пробовал, но это не работает, пожалуйста, помогите, спасибо!

 FB.ui(
    {
        method: 'feed',
        name: 'name goes here',
        link: 'http://apps.facebook.com/****/',
        picture: '<?php echo $imageurl; ?>',
        caption: 'here is caption',
        description: 'the description',
        message: '<?php echo $charecter; ?>'
    },
    function(response) {
    if (response && response.post_id) {
    alert('<?php include "invitefriends.php"; ?>');

    } else {

    alert('<?php include "invitefriends.php"; ?>');

 }

вот инвайтфрендс.php

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

     FB.ui({ method: 'apprequests', 
       message: 'Folks check out my new facebook app!! visit http://apps.facebook.com/**** '});
   </script>
   </body>

person Ram Kumar    schedule 20.03.2011    source источник
comment
Это должно работать. Я использовал это раньше. Возможно, проблема в том, как выглядит код после импорта файлов php. Можете ли вы опубликовать содержимое файла php.   -  person Elad Lachmi    schedule 20.03.2011


Ответы (1)


Ну, это странный способ выполнить простую задачу:
Вы можете объединить шаги 4 и 5 в один шаг:

FB.ui(
    {
        method: 'feed',
        name: 'name goes here',
        link: 'http://apps.facebook.com/****/',
        picture: '<?php echo $imageurl; ?>',
        caption: 'here is caption',
        description: 'the description',
        message: '<?php echo $charecter; ?>'
    },
    function(response) {
        FB.ui({ method: 'apprequests', 
        message: 'Folks check out my new facebook app!! visit http://apps.facebook.com/**** '});
        /* if (response && response.post_id) {
            alert('<?php include "invitefriends.php"; ?>');

        } else {

            alert('<?php include "invitefriends.php"; ?>');

        } */
    }
)

Как видите, нет необходимости в if else, так как вы все равно будете принудительно приглашать!

Теперь, если вам действительно нужно использовать свой подход, вы можете использовать что-то вроде (в response:

location.href='<?php echo 'path/to/invitefriends.php';

ВАЖНОЕ ПРИМЕЧАНИЕ:
Скорее всего, ВСЕ ваши 5 шагов можно объединить в ОДИН файл, это лучше, потому что:

  1. Вам не нужно загружать и инициализировать JS-библиотеку ПЯТЬ раз!
  2. Будет лучше работать с пользователем вместо загрузки каждый раз
  3. Вы можете обернуть все вызовы Facebook в функции JS и просто вызывать каждый из них в ответ на предыдущий!
person ifaour    schedule 20.03.2011
comment
спасибо за ответ, я реализовал его, и он действительно работает, но снова я застрял, на этот раз потому, что если всплывающее окно заблокировано в браузере, всплывающее диалоговое окно обновления статуса не работает. у вас есть какие-либо работы для этого. пожалуйста помогите, это последний шаг! - person Ram Kumar; 22.03.2011
comment
@RahulSharma: FB.ui вообще считается всплывающим окном?! Я бы посоветовал вам задать еще вопросы со скриншотами, если это возможно. - person ifaour; 22.03.2011
comment
вот: stackoverflow.com/questions/5387381/ - person Ram Kumar; 22.03.2011
comment
ifaour я все еще застрял и жду твоего ответа - person Ram Kumar; 23.03.2011