-1

この質問をご覧になったら、よろしくお願いします! Facebook からデータを取得する作業を行っています。

Facebook からユーザー名を取得しようとしているので、後の段階でそれを使用できます。FB ルート div に次のコードを埋め込みました。

リトリーブが効くのは知ってる!しかし、私はそれを関数に渡すことが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>
4

1 に答える 1

1

returndata()あなたができないランダムなポイントで関数を呼び出していると思います。その理由は、変数PASONに値が非同期的に割り当てられるためです。returndata()したがって、値が割り当てられた後に呼び出すような方法でコーディングする必要があります!

function で何をしようとしているのかは明確ではありませんreturndata()。しかし、あなたのコンセプトが明確になったことを願っています。

于 2013-07-27T12:17:54.787 に答える