使用Adobe AIR通过Javascript客户端库连接到Facebook

时间:2010-01-02 06:45:29

标签: facebook air adobe

我在通过Adobe AIR中的Javascript客户端库连接到Facebook时遇到问题。它在浏览器中工作正常但在Adobe AIR中似乎无法找到Facebook功能。以下是我从Facebook网站上复制的一些代码:(哦,我也有正确路径的xd_receiver.htm文件)

<textarea style="width: 1000px; height: 300px;" id="_traceTextBox">
</textarea>
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script>

    //

      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 ');
           });
      });
});
//]]>
</script>

2 个答案:

答案 0 :(得分:1)

实际上并不是那么简单,从应用程序沙箱加载外部脚本文件的问题是它不受支持。从技术上讲,通过使用iframe,您应该能够这样做并且它可以工作但是根据我的经验,仍然无法在根文档中使用XFBML。经过两天的反复试验,在html / ajax adobe air应用程序中使用Facebook Connect的最简单方法是下载actionscript库并将其包含在内:

<script type="application/x-shockwave-flash" src="lib/facebook.swf"></script>
<script type="text/javascript">
var FB = window.runtime.com.facebook;
var fb = new FB.Facebook();
var session = new FB.utils.DesktopSessionHelper();
//etc...
</script>

然后只需参考文档。我现在唯一的问题是我还没有找到一个在adobe air中使用XFBML的有效方法,简单地将facebook命名空间添加到html标签不幸的是不行。如果有人知道,请分享谢谢

答案 1 :(得分:0)

您还需要将xml命名空间(主html标记)更改为:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en-gb" lang="en-gb">