这是我使用 FB.ui 将 Flash 应用程序发布到 facebook 用户的墙上的基本内容。更准确地说,允许用户将 Flash 应用程序发布到他/她选择的朋友的墙上。
Flash 已发布并在 Chrome、FF、Safari 和带有 http 的 IE9 中正常工作......但对于 https 它在 FF 中不起作用。
问题当然是我必须让它在所有主要浏览器和 https 上都能工作。
在代码中,您可以看到我正在使用 https 协议发布 flash 应用程序,这是因为这是我让它在 facebook 安全浏览下工作的方式,所有其他链接都使用 http 协议。
strFlashVars 包含一些数字、字符串和图像的部分 url
这是代码(简化):
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);});
这些是我在嵌入了 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}" />
现在上面的问题是flash应用程序根本无法在IE7、IE8和Opera中加载(图片和播放按钮都在那里,但点击时它只会伸展开来,仅此而已)而且它当我使用带有安全浏览功能的 FB 时,将无法在 FF 中工作。
我还尝试了以下代码(简化):
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);});
这样我让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);});
但是这样就没有图片或播放按钮......我发现一个文档告诉我这样做,另一个告诉我如果我同时使用源和图片,图片将被忽略。