Facebook教程项目对我不起作用,返回“undefined”

时间:2012-01-21 22:34:25

标签: facebook-graph-api

我刚开始为Facebook开发。我实际上正在为大学课程编写应用程序。

我按照开发者网站上的教程,他们最初的工作就像一个魅力。我使用了使用Facebook按钮生成登录的示例,以及从登录用户检索信息并将其显示在页面上的另一个页面。

我离开它几个星期来处理其他承诺,现在这段代码不起作用。之前它会列出个人资料图片,姓名,电子邮件等。现在它只是说未定义。我唯一可以理解的是,我一直在使用已被折旧的东西,因为我现在切换到我的Facebook帐户的时间线(但是为什么我使用的原始示例仍然是第一组开发人员网站上的教程https://developers.facebook.com/docs/guides/web/)。

我也去了开发者网站上的Open Graph页面,他们在那里有一个教程,只显示一张cookie的图片,然后将应用程序添加到你的时间线(我相信你们都熟悉它) 。这也行不通!它只会显示一个空白框,它立即消失(不要求我授权任何东西)并且不会在我的时间轴上添加任何内容。

我已经尝试过查看我的应用设置但我看不到任何奇怪的内容。

1 个答案:

答案 0 :(得分:1)

可能您正在使用一些已弃用的功能。

要做的第一件事是确保在Facebook上创建了一个应用程序,并且应用程序设置上的站点URL是您编写应用程序的站点(例如:http://locahost/application_name)。另外,请记下应用程序ID(您可以在https://developers.facebook.com/apps/上找到所有这些设置)。

现在您已经了解了这一点,以下是为您的用户提取信息的示例(将“YOUR_APP_ID”替换为您的应用程序ID:

 <!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <link rel="stylesheet" type="text/css" media="screen" href="styles/styles.css" />
        <link rel="stylesheet" type="text/css" media="screen" href="styles/default.css" />
        <script type="text/javascript" src="js/jquery-ui.min.1.8.js"></script>
        <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
        <script type='text/javascript' src="js/jquery-ui.min.js"></script>
        <script type='text/javascript' src="js/main.js"></script>
        <script type='text/javascript' src='js/default.js'></script>
                <script language="JavaScript"> 
                    function get_feed()
                    {
                        FB.api('/me', function(response) {
                          alert(response.name);
                        });
                    }
                </script>
        </head>
        <body>
            <div id="fb-root"></div> 
            <div id="login"></div> 
            <div id="test"></div> 
            <div id="stream"></div> 
            <script src="http://connect.facebook.net/en_US/all.js"></script> 
            <script> 
            FB.init({
                appId  : 'YOUR_APP_ID',
                status : true, // check login status
                cookie : true, // enable cookies 
                xfbml  : true, // parse XFBML
                oauth  : true
              });
            FB.Event.subscribe('auth.authResponseChange', function(response) {
              window.location.reload();
            });
            FB.getLoginStatus(function(response) {
              if (response.status == "connected") {
                // logged in and connected user, now get the facebook info
                get_feed();
                document.getElementById('login').innerHTML
                  ='<a href="#" onclick="FB.logout();">Logout fom Facebook</a><br/>';
              } else {
                document.getElementById('login').innerHTML
                  ='<fb:login-button show-faces="true" width="200"' 
                  + ' max-rows="1" perms="user_about_me, user_likes, friends_likes, read_stream, publish_stream">'
                  + '</fb:login-button>';
                FB.XFBML.parse();
              }
            });
            </script> 
        </body>
</html>

希望它有所帮助。