在Soundcloud API中使用令牌以保持登录状态

时间:2016-05-04 12:49:09

标签: javascript api soundcloud

我正在尝试设置一个小网站,您可以使用您的soundcloud帐户登录。我设法让登录工作并阅读有关登录用户的不同信息。但是,只要我切换网站,我就需要再次登录。我之前没有使用过令牌,但据我所知,他们将您的凭据存储在一个字符串中,以便Soundcloud对用户进行身份验证而无需再次登录。

我正在使用PHP,但到目前为止我所做的一切都是使用javascript。这是代码:

这是我登录的部分:

<script>
function signIn(){
    SC.initialize({
          client_id: "myclientid",
          redirect_uri: "http://localhost/Main/callback.html",
        });

    SC.connect(function () {
          SC.get("/me", function (response) {
            console.log("Welcome " + response.full_name);
            console.log(SC.accessToken());
            $("#name").html("Hello " + response.full_name);
          });
    });
}
</script>

<h1><span id="name"></span></h1>
<div onclick=signIn() id="SignIn">Sign In</div>

一旦我跳到这一部分,它就会给我一个“401(未经授权)”,因为我还没有登录这个页面。

<script>
function getTracks(){
    SC.initialize({
      client_id: "myclientid",
      redirect_uri: "http://localhost/Main/callback.html",
    });
    var tracks = {};
    SC.get("/me/tracks", function (resp) {
        for (var i=0; i< resp.length; i++) {
            if(resp[i].downloadable){
                $("#tracklist ul").append("<li><form action=\"tracks.php\"\><input type=\"submit\" value=\""+resp[i].title+"\"></form></li>");
            }
        }
    });
}
</script>

<div onclick=getTracks() id="tracklist">
    <h3>Your Tracks:</h3>
    <ul></ul>
</div>

如何使用令牌使用我的请求?

非常感谢您提前的时间! 欢呼声

1 个答案:

答案 0 :(得分:0)

我不知道为什么现在这样有效,因为我之前尝试过这个。对于每个请求,都需要初始化SC对象。所以我需要做的就是添加这个:

SC.initialize({
  client_id: "myclientid",
  redirect_uri: "http://localhost/Main/callback.html",
  access_token: "theusersaccesstoken"
});

我不知道为什么今天这样有效,但最后我才开始工作。