我正在调用 canvas :
FB.login(function(){}, {
scope:'publish_stream'
});
在Firefox和Chrome上显示带有权限对话框的弹出窗口。但在IE上有错误(见附件。):
my_app_name发生错误。请稍后再试。
我的FB.init
:
FB.init({
appId: <FB_APP_ID>,
status: true,
cookie: true,
xfbml: true,
oauth: true,
hideFlashCallback: function(){}
});
早些时候(在oauth之前)我正在使用下面的代码,没关系,但它不能用于oauth:
FB.ui({
method: 'permissions.request',
perms: 'publish_stream',
}, function(){});
编辑
来自访问令牌的信息:
edit2:
如果您找到解决方案,请写下答案 - 如果有效,我会从您的声誉中给您100分。
答案 0 :(得分:4)
要使其在IE中运行,您应该使用完全限定的url将channelUrl param添加到FB.init。例如:
FB.init({
appId: <FB_APP_ID>,
status: true,
cookie: true,
xfbml: true,
channelUrl: 'http://www.example.com/facebook-channel.html'
});
网址必须指向仅包含一个脚本标记的网页:
<script src="http://connect.facebook.net/en_US/all.js"></script>
如果你只是写
,那么使channelUrl成为一个绝对的人是很重要的channelUrl: '/facebook-channel.html'
它不会工作。我对此感到很头疼,所以我希望它对你或任何像我之前一样困扰它的人都有所帮助。
答案 1 :(得分:1)
尝试将_inCanvas切换到true
,看看会发生什么
FB._inCanvas = true;
答案 2 :(得分:1)
我过去也遇到过这个问题。您可能在一个域上打开它,该域与在应用程序设置页面上指定为您的站点域的域不同。
答案 3 :(得分:1)
如果您已选择使用
沙箱
在developers.facebook.com/apps。
您应该将其更改为不使用。
答案 4 :(得分:0)
现在你在https上运行,你需要通过https引用所有的声明。 IE现在将显示一连串警告,告诉用户并非所有内容都通过安全连接发送。这可能就是弹出窗口失败的原因。设置SDK以通过HTTPS加载内容:
FB._https = true;
FB.init({
/* your app id and stuff */
});
答案 5 :(得分:0)
也许是因为IE没有设置第三方Cookie?
尝试添加
标题('P3P:CP = HONK');
进入php文件后,必须在输出文件中的任何内容之前使用标题函数。
答案 6 :(得分:0)
我为此做了一些解决方法。我正在用以下网址打开新窗口:
https://www.facebook.com/dialog/oauth?client_id=APPID&scope=publish_stream&redirect_uri=MYPAGE
当MYPAGE(在我的应用程序网址中)加载时,它只是自行关闭。
如果您找到解决方案,请写下答案 - 如果有效,我会从您的声誉中给您100分。