2013-07-27 5 views
-1

Если вы рассматриваете этот вопрос заранее, спасибо !, я работаю над извлечением данных из Facebook.Невозможно передать форму ответа facebook другой функции

Я пытаюсь вытащить имя пользователя из Facebook, поэтому я могу использовать его на более позднем этапе. Я вложил следующий код в div FB Root.

Я знаю, что поисковые работы! однако я не могу передать его функции returndata Я относительно новичок в javascript, не могли бы вы помочь мне? я попробовал все

Там есть предупреждение там, чтобы проверить, если он получения данных

<div id="fb-root"></div> 
<script type="text/javascript"> 

    $(document).ready(function() 
    { 
     var appId = "121070974711874"; 

     // If logging in as a Facebook canvas application use this URL. 
     var redirectUrl = "http://apps.facebook.com/bggressive"; 

     // If logging in as a website do this. Be sure to add the host to your   application's App Domain list. 
     var redirectUrl = window.location.href; 

     // If the user did not grant the app authorization go ahead and tell them that. Stop code execution. 
     if (0 <= window.location.href.indexOf ("error_reason")) 
     { 
      $(document.body).append ("<p>Authorization denied!</p>"); 
      return; 
     } 


     // When the Facebook SDK script has finished loading init the 
     // SDK and then get the login status of the user. The status is 
     // reported in the handler. 
     window.fbAsyncInit = function() 
     { 
      FB.init({ 
        appId : appId, 
        status : true, 
        cookie : true, 
        oauth : true 
      }); 
      FB.getLoginStatus (onCheckLoginStatus); 
     }; 

     (function(d) 
     { 
      var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
      js = d.createElement('script'); js.id = id; js.async = true; 
      js.src = "//connect.facebook.net/en_US/all.js"; 
      d.getElementsByTagName('head')[0].appendChild(js); 
     }(document)); 


     function onCheckLoginStatus (response) 
     { 
      if (response.status != "connected") 
      { 
       top.location.href = "https://www.facebook.com/dialog/oauth?client_id=" + appId + "&redirect_uri=" + encodeURIComponent (redirectUrl) + "&scope=user_photos,friends_photos"; 
      } 
      else 
      { 
       FB.api('/me', function(response) 
       { 
        PASON = response.username 
        alert(response.username) 
       }); 
      } 
     } 
    }); 

    function returndata() 
    { 
     get = PASON 
     return get 
    }; 

</script> 
+0

Вместо того, чтобы задавать один и тот же вопрос 4 раза, вы должны отредактировать свой оригинал, чтобы быть более понятным: http://stackoverflow.com/questions/17885899/not-getting-data-form-java-function-in-another- функция, http://stackoverflow.com/questions/17849255/unable-to-get-object-out-of-функция, http://stackoverflow.com/questions/17825385/unable-to-call-a-function- in-function-with-a-fb-reference – Alden

ответ

1

Я думаю, что вы вызываете функцию returndata() в любой случайной точке, вы не можете сделать. Причина в том, что переменная PASON присваивается асинхронному значению. Таким образом, вы должны закодировать таким образом, что вы вызываете returndata() после назначения значения!

Не совсем понятно, что вы пытаетесь сделать с помощью функции returndata(). Но, надеюсь, теперь ваша концепция понятна.

+0

Я хочу использовать returndata() позже для использования для нескольких функций ... –

+0

И я также хочу передать это AS3 для интерактивного флеш-ролика –

+0

Вы поняли концепт? Теперь вы можете реализовать его любым способом. например: вы можете сохранить переменную в переменной SESSION после ответа и использовать ее в любом месте в будущем. ИЛИ, вы можете установить эту переменную в скрипте и получить ее в любое время. –

Смежные вопросы