javascript – 使用Node.js / Express.js获取Spotify API访问令牌
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 使用Node.js / Express.js获取Spotify API访问令牌,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2673字,纯文字阅读大概需要4分钟。
内容图文
我有一个网络应用程序,允许人们生成与特定艺术家相关的艺术家的歌曲列表.我希望能够连接到用户的Spotify帐户,并从该歌曲列表中为他们创建播放列表,但我需要获取访问令牌.我有一个开发人员帐户和客户端ID,我正在尝试通过授权流程,但它不适合我.相反,我收到此错误:XMLHttpRequest无法加载https://accounts.spotify.com/authorize/?client_id=d137fe25b31c4f3ba9e29d85f…:3000/callback\u0026amp;scope=user-read-private user-read-email& state = 34fFs29kd09.请求的资源上不存在“Access-Control-Allow-Origin”标头.因此不允许来源’http:// localhost:3000’访问.
这是我的scripts.js文件的一部分(我正在使用spotify-web-api-js节点模块):
$('#spotify').on('click', function() {
$.support.cors = true;
$.getJSON("https://accounts.spotify.com/authorize/?client_id=d137fe25b31c4f3ba9e29d85f4e47c66&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fcallback&scope=user-read-private%20user-read-email&state=34fFs29kd09", function(json2){
$.getJSON("https://accounts.spotify.com/api/token/?grant_type=authorization_code&code=" + json2.code + "&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fcallback&client_id=d137fe25b31c4f3ba9e29d85f4e47c66&client_secret={...}", function(json3) {
s.setAccessToken(json3.access_token);
});
});
});
});
根据我的研究,这是一个与CORS相关的问题.我正在编辑我的ExpressJS服务器以解决这个跨源问题并安装了cors节点模块,但我仍然遇到同样的错误.
index.js服务器:
var express = require('express');
var cors = require('cors');
var app = express();
var port = 3000;
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.use(express.static(__dirname + '/public')); // looks in public directory, not root directory (protects files)
app.get('/', function(req, res) {
res.send(__dirname + '\\index.html')
});
app.listen(port, function() {
console.log('CORS-enabled web server listening on port ' + port);
});
当我直接通过浏览器访问相关网址时,它会向我提供预期的“您是否授权此应用使用您的Spotify信息”表单.
我应该在’scripts.js’中要求’cors’才能使用吗?有没有人有任何其他建议?
解决方法:
我相信这里的问题是您尝试从应该指导用户的端点检索JSON数据.因此,您应该在页面上提供一个链接到您的https://accounts.spotify.com/authorize/ {…} URL的按钮,而不是向它发出请求.用户将继续为您的应用程序提供您在scope参数中指定的请求权限,并将返回到您在redirect_uri参数中指定的URL.您可以在此处获得授权代码,您可以在https://accounts.spotify.com/api/token/ {…}端点中使用该代码.阅读Authorization Guide中有关授权代码流程的更多信息.
Spotify Web API支持三种不同的oAuth流程,您可能对Implicit Grant感兴趣.使用Node在Javascript中编写的所有这些流程的示例可在https://github.com/spotify/web-api-auth-examples获得.
内容总结
以上是互联网集市为您收集整理的javascript – 使用Node.js / Express.js获取Spotify API访问令牌全部内容,希望文章能够帮你解决javascript – 使用Node.js / Express.js获取Spotify API访问令牌所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。