Javascript 贴在墙上的Flash(FB.ui js SDK),在IE7/8和Opera中不起作用
下面是我使用FB.ui在facebook用户的墙上发布flash应用程序的基本方法。更确切地说,允许用户将flash应用程序发布到他/她所选朋友的墙上 flash已经发布,在Chrome、FF、Safari和IE9中可以很好地使用http。。。但对于https,它在FF中不起作用 当然,问题是我必须让它在所有主流浏览器和https上工作 在代码中,你可以看到我发布了带有https协议的flash应用程序,这是因为这是我如何让它在facebook安全浏览下工作的,所有其他链接都使用http协议 strFlashVars包含一些数字、字符串和图像url的一部分 以下是简化的代码:Javascript 贴在墙上的Flash(FB.ui js SDK),在IE7/8和Opera中不起作用,javascript,facebook,flash,internet-explorer,opera,Javascript,Facebook,Flash,Internet Explorer,Opera,下面是我使用FB.ui在facebook用户的墙上发布flash应用程序的基本方法。更确切地说,允许用户将flash应用程序发布到他/她所选朋友的墙上 flash已经发布,在Chrome、FF、Safari和IE9中可以很好地使用http。。。但对于https,它在FF中不起作用 当然,问题是我必须让它在所有主流浏览器和https上工作 在代码中,你可以看到我发布了带有https协议的flash应用程序,这是因为这是我如何让它在facebook安全浏览下工作的,所有其他链接都使用http协议 s
FB.ui({
method: 'stream.publish',
to: strUserIdOfSelectedFriend,
attachment: {
name: strName,
caption: strCaption,
description: strDescription,
href: strURLOfThePageThatHasTheMetaData,
media: [{
type: 'flash',
swfsrc: 'https://mysite.com/flashSrc.swf?' + strFlashVars,
imgsrc: strLinkToImage
}]
},
actions: {
name: 'Share',
link: 'http://www.facebook.com/share.php?u=' + encodeURIComponent(strURLOfThePageThatHasTheMetaData)
}
}, function(response){doSometing(response);});
FB.ui({
method: 'feed',
to: strUserIdOfSelectedFriend,
link: strURLOfThePageThatHasTheMetaData,
actions: {
name: 'Share',
link: 'http://www.facebook.com/share.php?u=' + encodeURIComponent(strURLOfThePageThatHasTheMetaData)
}
}, function(response){doSometing(response);});
这些是我在嵌入flash的页面上使用的元标记:
<meta property="fb:app_id" content="${strFacebookAppId}" />
<meta property="og:title" content="${strPostTitle}" />
<meta property="og:description" content="${strDescription}" />
<meta property="og:type" content="video" />
<meta property="og:image" content="http:${strImgLink}" />
<meta property="og:video" content="http:${strFlashUrlSource}?${strFlashVars}"/>
<meta property="og:video:secure_url" content="https:${strFlashUrlSource}?${strFlashVars}"/>
<meta property="og:video:type" content="application/x-shockwave-flash" />
<meta property="og:video:width" content="398" />
<meta property="og:video:height" content="210" />
<meta property="og:site_name" content="${strPageTitle}" />
这样我让FB从链接http收集所需的数据,它在IE7和IE8中工作。。。但它不会在任何浏览器上使用https。。。之后,我尝试将链接的协议切换到https,但得到了相同的结果
我欢迎任何建议,并将尽可能快地回答任何问题
PS我也试过了
FB.ui({
method: 'feed',
to: strUserIdOfSelectedFriend,
link: strURLOfThePageThatHasTheMetaData,
name: strName,
caption: strCaption,
description: strDescription,
source: 'https://mysite.com/flashSrc.swf?' + strFlashVars,
picture: strLinkToImage,
actions: {
name: 'Share',
link: 'http://www.facebook.com/share.php?u=' + encodeURIComponent(strURLOfThePageThatHasTheMetaData)
}
}, function(response){doSometing(response);});
但是这个没有图片或播放按钮。。。我发现一份文档告诉我这样做,另一份文档告诉我,如果我同时使用源代码和图片,图片将被忽略。所以问题是,经过几个小时的混乱之后才发现的。如果你有一个被IE9、Chrome和Safari接受的SSL证书,那么其他浏览器不会接受它。因此,基本上是证书导致了问题 我发现有趣的是,altough FF没有接受证书,它仍然能够在http中工作