首页 文章

Spotify API在托管服务器上设置

提问于
浏览
0

我不是一个经验丰富的程序员,并且是第一次使用API,所以请原谅我(缺乏)知识 . 我的目标是创建一个链接您的spotify帐户的网站,并根据EchoNest的音乐API推荐曲目 .

我已经按照Spotify教程(此处:https://developer.spotify.com/web-api/tutorial/#calling-the-spotify-accounts-service)链接您的Spotify / FB详细信息,并通过计算机上安装的本地主机在您的网站上打印它们 . 我的初步测试工作正常,我可以从Spotify获取我的详细信息,一切都很棒 .

但是,当我将重定向URI更改为我的服务器和域名时,整个过程都会失败 . 我已经编辑了我的Spotify开发人员详细信息,以使用我的实际Web服务器更新它们 .

最初(取自spotify教程)(localhost:8888)将调用我的主页,然后(localhost:8888 / login)将链接到Spotify登录页面,然后自动(localhost:8888 / callback)到您的站点授权时 .

但是,当我将文件上传到我的Web服务器时,编辑的脚本包含我的域而不是localhost8888(对于那些感兴趣的人来说是jumpmyjukebox.com),我收到错误消息,指出找不到/ login页面的页面,这是处理 .

我是否需要为/ login手动设置页面,或者我错过了一个关键元素?

我获得并编辑的文件在这里:(https://github.com/spotify/web-api-auth-examples

感谢任何能够/将会帮助的人,虽然我已经相对开启了,但我完全没有这方面的教学,所以对我来说似乎“显而易见”的事情对我来说并不是这样!

1 回答

  • 1

    我检查了你的网站,当我点击“使用Spotify登录”链接将我带到jumpmyjukebox.com/login时,确实遇到了404(Not Found)错误 . 发生这种情况的原因是您的Web服务器未处理/ login路径 .

    在spotify-web-api-auth-examples / authorization_code / app.js中运行的代码侦听对/ login的请求,并将用户重定向到Spotify网站上的URL .

    这是app.js处理/登录中的代码 .

    app.get('/login', function(req, res) {
    
      var state = generateRandomString(16);
      res.cookie(stateKey, state);
    
      // your application requests authorization
      var scope = 'user-read-private user-read-email';
      res.redirect('https://accounts.spotify.com/authorize?' +
        querystring.stringify({
          response_type: 'code',
          client_id: client_id,
          scope: scope,
          redirect_uri: redirect_uri,
          state: state
      }));
    });
    

    如您所见,当有人请求/登录时,他们只是被重定向到https://accounts.spotify.com/authorize . 多个查询参数将附加到URL,包括应用程序需要运行的作用域的重定向URI . 在用户填写完凭证并批准您的应用程序后,'s scopes, they'重新定向回应用程序的设置重定向URI .

    您似乎没有在服务器上的app.js中运行代码 . 当然没有要求,您可以使用您喜欢的任何语言和框架中的任何代码 . 但是,如果您正在运行其他操作,请确保您的服务器处理/登录,如果您要使用与示例相同的功能 .

相关问题