javascript - 如何将 Soundcloud API(身份验证)与 Angular.js 一起使用

标签 javascript angularjs soundcloud

我已经可以使用公共(public) Soundcloud API,但我正在努力使用回调.html 来获取登录对话框。

在 Soundcloud,我的应用程序具有以下回调重定向 uri:callback.html:http://localhost:8080/#/callback

在该路线上,我的 Angular 应用程序定义了一个具有所需回调模板的 Controller :

<!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="width: 100%; text-align: center;">This popup should automatically close in a few seconds</b>
    </body>
</html>

在我的根 Controller 中我已经定义了:

SC.initialize({
    client_id: "####",
    redirect_uri: "http://localhost:8080/#/callback",
});

这就是公共(public) API 在另一个 Controller 上为我工作的原因:

SC.get('/resolve', {
     url: 'https://soundcloud.com/someuser'
}, function(user) {
    console.log(user);
});

但在同一个 Controller 中,以下内容返回 401:

SC.get('/me', function(me) {
    console.log(me);
});

当然可以,因为没有弹出登录对话框!

那么我设置callback.html做错了什么?

我的假设:

  1. 是吗,因为该 URL 中有/#/吗?我已经尝试过 <base href="/">$locationProvider.html5Mode(true);但这并没有改变任何事情。

  2. 是吗,因为我应该不在我的 SPA 环境中提供回调.html。所以更像是一个独立的静态页面?

  3. callback.html 的映射是否错误?

  4. 我使用 webpack 作为构建工具。难道这有什么问题吗?

  5. 我是否必须在 Soundcloud 应用程序中设置除重定向 URI 之外的其他内容?

我非常希望有人能帮助我!

最佳答案

我的网站也是 angularjs+soundcloud, 可以肯定的是,我在您的代码中没有看到 SC.connect 函数,是在其他地方吗?

我的 Controller 中的功能:

this.connect= function(){

            SC.connect(function(response){

                SC.get("/me", function(response){
                    // console.log(response);
                    var data={};
                    data.token = SC.accessToken();
                    data.id = response.id;
                    $rootScope.user.sc_id=data.id;
                    $rootScope.user.sc_token=data.token;
                    soundcloud.saveToken(data);
                    soundcloud.generateAuthString();

                    //other things

        });
    });

 }

关于javascript - 如何将 Soundcloud API(身份验证)与 Angular.js 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304756/

相关文章:

javascript - 只从 URL 中获取数字

javascript - 使用 Angular.js - 如何从需要身份验证的后端提供二进制数据?

javascript - SoundCloud API - 列出用户的关注用户名

javascript - 图表 js 不返回工具提示

javascript - 部署heroku问题

javascript - 是否有推荐的方法在 React 组件中运行设置,但只有在满足几个条件后才能运行?

javascript - $ionicHistory 在 ionic 应用程序中不起作用

javascript - 使用 span 突出显示字符串中的文本时会产生问题

php - 检查自定义字段

android - 使用 Picasso 在第二个 Volley JSON 请求后将图像加载到 RecyclerView 中?