0

这是我使用 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);});

但是这样就没有图片或播放按钮......我发现一个文档告诉我这样做,另一个告诉我如果我同时使用源和图片,图片将被忽略。

4

1 回答 1

0

所以问题是经过数小时的困惑后才出现的。如果您拥有 IE9、Chrome 和 Safari 接受的 SSL 证书,则并不意味着其他浏览器会接受它。所以基本上证书导致了问题。

我发现有趣的是,尽管 FF 不接受它仍然能够在 http 中工作的证书。

于 2012-06-15T12:30:13.190 回答