验证用于Spotify web api无效

时间:2015-05-24 19:28:15

标签: spotify

我正在使用spotify web api编写应用程序供个人使用。它是node.js应用程序。我调用accounts.spotify.com/authorize端点并重定向到spotify登录,但我无法使用Facebook登录或发现用户名/密码。

当我尝试通过Facebook登录时,我收到此错误:“App Not Setup:此应用程序仍处于开发模式,您无法访问它。切换到已注册的测试用户或询问应用程序管理员的权限。“当我尝试使用spotify用户名/密码登录时,我收到此错误:“哎呀!出了点问题,请再试一次或查看我们的帮助区域”

这是代码。除了重定向到spotify登录之外,此时它没有做太多工作。我编写了client_id和重定向URL。如果我直接在浏览器中输入重定向URL,则可以访问该重定向URL。我相信,因为我正在获得spotify登录页面,所以我在正确的球场,但可能会错过应用程序设置或代码中的内容。

有人可以告诉我如何解决这个错误吗?感谢。

var request = require('request');
function SpotifyLogin(req,res)
{
    var options =
    {
        url: 'http://accounts.spotify.com/authorize/?client_id=<redacted>&response_type=code&redirect_uri=<redacted>&scope=user-read-private&state=34fFs29kd09&show_dialog=true',
        followAllRedirects: true,
        followRedirect: true
    };

    request(options, function(error, response, body)
    {
        res.send(body);
        console.log(body);
        console.log(response.toJSON());
    }).on('error', function(e) {
        res.setHeader('Content-Type', 'text/html');
        res.send("<html><body>"+ e.message +"</body></html>");
        console.log("Got error: " + e.message);
    });

}

1 个答案:

答案 0 :(得分:0)

感谢jooon在评论中提出建议,如果我的服务器返回的页面只是将浏览器重定向到https:/accounts.spotify.com/authenticate并使用正确的参数,则认证流程正常工作,从而导致Spotify调用我的回调网址。

这里是spotify网址硬编码,我的client_id和redirect_url隐藏。

function SpotifyLogin(req, res)
{
    res.writeHead(302, {
        'Location': encodeURI("https://accounts.spotify.com/authorize/?client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&response_type=code&redirect_uri=http://xxxxxxx/callback/&scope=playlist-read-private playlist-read-collaborative playlist-modify-public playlist-modify-private streaming user-follow-modify user-follow-read user-library-read user-library-modify user-read-private user-read-birthdate user-read-email&state=34fFs29kd09&show_dialog=true")
    });
    res.send();
}