我正在尝试使用“callback.html”API实现SoundCloud JS示例代码 https://developers.soundcloud.com/docs/api/sdks#authentication http://connect.soundcloud.com/examples/recording.html
当我上传录音时,我会获得授权登录弹出窗口
登录后,弹出窗口显示“此弹出窗口应自动关闭......”
但弹出窗口没有关闭。
录音没有上传。
我很肯定SC.initialize有我正确的“clientID”,正在从我的目录中正确引用“callback.html”。
我错过了什么吗?也许“客户秘密”?
SC.initialize({
client_id: "xxxxxxxxxxxxxxxxxxxxxx",
redirect_uri: "http://www.example.com/callback.html"
});
一次(侥幸)而不是普通的pop msg“这应该关闭”,消息说“502 Bad Gateway”。但我还没有能够重现这个消息。
答案 0 :(得分:1)
SoundCloud的示例代码已损坏。
这是来自SoundCloud的callback.html
<body onload="window.opener.setTimeout(window.opener.SC.connectCallback, 1)">
这就是我开始工作的方式:
<body onload="window.setTimeout(window.opener.SC.connectCallback, 1)">
SoundCloud的connectCallback
使用this.location
来收集OAuth访问令牌。如果您在window.opener
设置超时,connectCallback
this
内将引用您应用的window
,该位置将成为您的主页。而在window
上设置它会将this
绑定到回调弹出窗口,而this.location
将在查询参数中包含访问令牌。
答案 1 :(得分:0)
我也遇到了同样的问题,并找到了解决方案,如果您将callback.html
更改为以下两个选项,它就会起作用 -
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Connect with SoundCloud</title>
</head>
<body onload="window.opener.setTimeout(window.opener.SC.connectCallback, 1)">
<b style="text-align: center;">This popup should automatically close in a few seconds</b>
<script type="text/javascript">
window.opener.SC.connectCallback.call(this);
</script>
</body>
</html>
或
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Connect with SoundCloud</title>
</head>
<body onload="setTimeout(window.opener.SC.connectCallback)">
<b style="text-align: center;">This popup should automatically close in a few seconds</b>
</body>
</html>