无法通过Facebook验证

时间:2009-12-13 22:52:10

标签: javascript facebook

我开始构建一个Facebook扩展应用程序。我得到了api auth部分的工作。 现在,当我使用javascript api请求任何内容时,我无法做到。

例如:

<div id="profile_pics"></div>
<script type="text/javascript">
var widget_div = document.getElementById("profile_pics");
FB.ensureInit(function () {
  FB.Facebook.get_sessionState().waitUntilReady(function() {
  FB.Facebook.apiClient.friends_get(null, function(result) {
    var markup = "";
    var num_friends = result ? Math.min(5, result.length) : 0;
    if (num_friends > 0) {
      for (var i=0; i<num_friends; i++) {
        markup += 
          '<fb:profile-pic size="square" uid="'+result[i]+'" facebook-logo="true"></fb:profile-pic>';
      }
    }
    widget_div.innerHTML = markup;
    FB.XFBML.Host.parseDomElement(widget_div);
  });
  });
});
</script>

以上示例代码应显示我朋友的方形缩略图。它只显示方形拇指(BLANKS)上面有facebook标志。我哪里错了?

供参考: 我有位于localhost的文件。在facebook应用程序设置中,我将connect url作为'localhost / dir / index.html'url的地址。有什么我做错了吗? 请帮帮我。

修改 这是我用来登录的代码:

<script type="text/javascript"> 
//<![CDATA[ 
var api_key = 'myapikey'; 
var channel_path = '/xd_receiver.htm'; 
FB_RequireFeatures(["Api"], 
function(){ 
    // Create an ApiClient object, passing app's API key and 
    // a site relative URL to xd_receiver.htm 
    FB.Facebook.init(api_key, channel_path); 
    var api = FB.Facebook.apiClient; // require user to login 
    api.requireLogin(function(exception)
    { 
        FB.FBDebug.logLevel=1; 
        FB.FBDebug.dump("Current user id is " + api.get_session().uid); 
        // Get friends list 

        //5-14-09: this code below is broken, correct code follows //
        //api.friends_get(null, function(result){ 
            // Debug.dump(result, 'friendsResult from non-batch execution '); 
            // }); 

        api.friends_get(new Array(), function(result, exception){ 
            FB.FBDebug.dump(result, 'friendsResult from non-batch execution '); 
            }); 
        }); 
    }); 
//]]> 

1 个答案:

答案 0 :(得分:3)

您发布的示例代码工作正常......我只是在我的一个开发FB应用程序中测试它,它创建了我朋友的个人资料图片。

您可能希望在代码中添加console.log(result)并使用Firebug检查API调用的结果。也许它会给你一个错误信息。听起来我觉得这里可能存在问题,因为在没有有效fb:profile-pic的情况下创建的uid会显示空白方块。

我会仔细检查您在“连接网址”设置下为应用程序提供的网址是Facebook可以访问的有效网址。还要仔细检查您为xd_reciever.htm文件指定的路径是否正常工作。值得仔细检查的第三件事是你在文档中设置了正确的xml命名空间:

<html xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en">