2010-02-21 31 views
0

我拉我的头发在这个:( 花了10个小时,但没有出来Facebook的IFRAME stream.Publish无法关闭对话框或跳过

我读这个线程 http://forum.developers.facebook.com/viewtopic.php?pid=198128

,但它并没有太大的帮助。

我运行一个本地开发的App Engine服务器(本地主机:8080)
iframe应用程序

,所以我有几个问题0123。 1)在safari 4.0.4上,发布故事对话框与所有图像/数据/ action_links很好地配合。在发布故事(或跳过)时,对话框变为空白并且不会关闭。

2)我在firefox 3.5.8上测试了相同的代码,对话框出现了所有的图像/数据/ action_links,但整个事情都冻结了。

单击对话框上的任意位置根本没有帮助。如果我足够耐心并单击“发布”,我必须在对话框显示“故事已发布”前10秒等待abt。然后它冻结。 (点击跳过并没有什么区别)。

顺便说一句,没有“按钮点击效果”:即:按钮看起来不像他们在点击时“下沉”。

我检查了终端上使用命令“顶” Firefox的内存,这一切似乎还好,在CPU进程没有秒杀(我可以打开其他Firefox的标签和对他们的工作)

我在解决徒劳的尝试问题...

1)所以我想,嗯,这可能是因为本地开发(localhost)的问题?我将代码上传到生产服务器,发生同样的事情。

2)I尝试一个较旧的Firefox(3.1)和相同的问题依然存在(冷冻)

3)我注意到,我种使用2个不同的FB特征(Connect和XFBML)。我在PostStory函数中使用的连接功能。标签之前使用的XFBML功能。

所以我想,嗯......我试着用FB_RequireFeatures [ “XFBML”]替换FB_RequireFeatures [ “连接”]功能。没有改变。我仍然无法关闭故事对话框。

4)有没有可能我没有正确连接到xd_receiver.htm?

我xd_receiver.htm存储在我的文件夹/媒体/ fbconnect

在我的app.yaml

handler: 
- url: /fbconnect 
    static_dir: media/fbconnect 

,所以我想一个连接必须与xd_receiver.htm建立。任何我可以测试的方式?

我这里还有所有的代码:

<script type="text/javascript"> 

     //post story function 
     function PostStory() { 
      //init facebook 
      FB_RequireFeatures(["Connect"], function() { 
      FB.Facebook.init('my_app_key', "/fbconnect/xd_receiver.htm"); 

      FB.ensureInit(function() { 

       var message = 'the message'; 
       var attachment = { 
        'name': 'a simple app to send gifts', 
        'href': 'http://apps.facebook.com/my_app_name', 'caption': '{*actor*} sent u something', 
        'description': 'some description', 
        "media": [{ "type": "image", "src": "http://bit.ly/105QYr", "href": "http://bit.ly/105QYr"}] 
       }; 
       //action links can only be seen AFTER the feed is published 
       var action_links = [{ 'text': 'Send him/her a gift back!', 'href': 'http://somelink.com'}]; 
       FB.Connect.streamPublish(message, attachment, action_links, null, "Share the gift with your friends", callback, false, null); 
      }); 
     }); 

     function callback(post_id, exception) { 
      //alert('Wall Post Complete'); 
     } 

} 

</script> 

只是/ body标签的结束之前,我有这样的:

<script type="text/javascript"> 

功能callFBInit(){ FB_RequireFeatures( [” XFBML“], function(){ FB.Facebook.init(”my_app_key“,”/fbconnect/xd_receiver.htm“); } ); } callFBInit();

顺便说一句,我xd_receiver.htm包含:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
    <html xmlns=� http://www.w3.org/1999/xhtml� > 
    <head> 
     <title>cross-domain receiver page</title> 
    </head> 
    <body> 
     <script src=�http://static.ak.facebook.com/js/api_lib/v0.4/xdcommreceiver.debug.js� type=� text/javascript� ></script> 
    </body> 
    </html> 

希望你们可以帮忙。 thx

回答

0

我有完全相同的问题。从技术上讲,streamPublish可以工作,但facebook窗口只是sux。我使用3种环境来测试它,但具有不同的行为:

  1. Debian Linux with IceWeasel(基本上是Firefox)。这是我的开发环境(Haxe为flash部分)。一旦我的facebook-flash应用程序弹出facebook窗口(使用Java-Script FB.Connect.streamPublish),如果点击“发布”或“跳过”(取消),Facebook窗口将变成全白色,闪光灯前面有一个白色的矩形。另外请注意,在任何时候在facebook窗口中都没有标题栏。 Flash应用程序仍然在后台运行,但使用白色矩形,我无法点击任何地方。重新启动...

  2. Windows XP与IE 8.0。几乎相同的行为。唯一的区别是,如果我点击旁边的闪光灯区域,它将获得焦点并且FB窗口消失,但我知道它仍然在内部打开,因为我无法再弹出它。

  3. 带有Firefox的Windows XP。现在这是非常不同的(请注意,我没有在这里混淆操作系统和浏览器名称)。实际上,这几乎可以工作:标题栏在那里,'x'向右关闭它,并且没问题。但如果我点击“发布”或“跳过”,窗口将不会关闭。尽管如此,除了标题栏之外,它会变成完全白色,所以我仍然可以关闭facebook窗口,然后在不重新启动的情况下再次出现。

我不认为这些信息有帮助,但嘿,总比没有好。几个月后,这让我感到很紧张,现在我的老板也很难过。 Facebook废话!

0

好吧,我设法通过在FB.Facebook.init()调用(使用xd_receiver.htm)中忽略通道路径参数来实现它。对不起fooyee,我已经在其他地方看到你已经知道这一点,但我应该在这里为其他人进入此页面发表评论。

它适用于我之前告诉的3种环境。现在最大的问题是:为什么地狱不适合频道路径。我必须承认,我没有弄清楚xd_receiver.htm文件的用途是什么,但似乎你在某些情况下并不需要它......只是在我的代码中评论它,以防我稍后出现问题......毫无疑问,窗口未关闭问题与该死的文件有关。这个问题让我发疯,我不喜欢那些没有真正解决的奇怪事情。

+0

@ tek512感谢张贴这个 - 与我们自己的应用程序有相同的问题!让我们看看这是否有效! :) – pageman 2010-03-09 19:41:28

2

喜想我可能会回答我的问题

我解决我的问题

的streamPublish对话框看起来像它“冻结”的原因似乎是z索引(一个CSS问题!)

我之前在我的应用程序中有一个背景图像,它的z-index为-10(我的逻辑是它应该尽可能早)。

我把它改成-1,瞧,Facebook的对话框工作在Safari和Firefox(所有的新版本)

没有与IE浏览器进行测试,虽然,但由于IE不是一个巨大的市场了我想我不应该浪费太多时间去思考它 [http://www.w3schools.com/browsers/browsers_stats.asp][1]

我怎么得出结论,我应该调整z-index?我回溯了所有的步骤,并将其简化为只包含html文件的非常简单的iframe应用程序。需要时间,但它有帮助!

+0

w00t!最后!我其实从facebook开发者论坛来到这里哈哈让我们来看看这是否可行! :) – pageman 2010-03-09 19:42:07