SoundCloud:callback.html弹出窗口没有关闭

时间:2014-09-13 04:23:39

标签: authentication soundcloud

我已经注册了我的SoundCloud应用程序。

我正在尝试使用“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”。但我还没有能够重现这个消息。

2 个答案:

答案 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>