Javascript Facebook API请求对话框不适用于Safari
我有以下代码,可以让用户登录并显示“为请求选择朋友”对话框(“apprequests”):Javascript Facebook API请求对话框不适用于Safari,javascript,html,safari,facebook-javascript-sdk,Javascript,Html,Safari,Facebook Javascript Sdk,我有以下代码,可以让用户登录并显示“为请求选择朋友”对话框(“apprequests”): 试验 函数({ FB.登录(功能(响应){ if(response.authResponse){ var access_token=FB.getAuthResponse()['accessToken']; FB.ui({ 方法:“apprequests”, 消息:“示例标题”, 最多收件人:1 },函数(响应){ console.log('OK'); }); } },{scope:'publish_st
试验
函数({
FB.登录(功能(响应){
if(response.authResponse){
var access_token=FB.getAuthResponse()['accessToken'];
FB.ui({
方法:“apprequests”,
消息:“示例标题”,
最多收件人:1
},函数(响应){
console.log('OK');
});
}
},{scope:'publish_stream'});
}
(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id))返回;
js=d.createElement;js.id=id;
js.src=“//connect.facebook.net/es_LA/all.js#xfbml=0&appId=xxxxxxxxxxxxx”;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“facebook jssdk”);
该代码适用于所有主要浏览器(Firefox、Chrome、Opera、IE11、Safari for IOS、Android浏览器)。Safari(适用于Mac/PC)是个例外:它正在打开“apprequests”对话框,但对话框显示为空。如果更改下拉选项(更改为“邀请好友”,然后再次更改为“所有好友”),则最终会显示好友列表
知道如何修复这个bug吗
谢谢大家! 据报道这是一个错误。如下文所述:
我们已经设法重现了这个问题,它似乎是一个有效的错误。我们正在将此分配给适当的团队
safari不需要单独处理。您只需暂停此任务,直到facebook开发者解决此错误。值得一提的是,此问题存在一个FB错误,令我震惊的是,该错误已被确认并被列为“已分配”-链接到FB错误似乎和他们的API一样不可靠。如果链接不起作用,试着转到bugs页面并搜索“Safari”-非常感谢Stephen,至少现在我知道我无法解决它。也许你应该把这些信息作为一个答案,这样我才能接受它的有效性?祝你一切顺利。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>Test</title>
<script type="text/javascript">
function facebook(){
FB.login(function(response) {
if (response.authResponse) {
var access_token = FB.getAuthResponse()['accessToken'];
FB.ui({
method: 'apprequests',
message: 'Sample Title',
max_recipients:1
}, function(response){
console.log('OK');
});
}
}, {scope: 'publish_stream'});
}
</script>
</head>
<body>
<p><a href="javascript:facebook();">Test</a></p>
<div id="fb-root"></div>
<script type="text/javascript">
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/es_LA/all.js#xfbml=0&appId=XXXXXXXXXXXXXX";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
</body>
</html>