Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 贴在墙上的Flash(FB.ui js SDK),在IE7/8和Opera中不起作用_Javascript_Facebook_Flash_Internet Explorer_Opera - Fatal编程技术网

Javascript 贴在墙上的Flash(FB.ui js SDK),在IE7/8和Opera中不起作用

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在facebook用户的墙上发布flash应用程序的基本方法。更确切地说,允许用户将flash应用程序发布到他/她所选朋友的墙上

flash已经发布,在Chrome、FF、Safari和IE9中可以很好地使用http。。。但对于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);});
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中工作