- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个使用 Spotify Node web API 的应用程序当多个用户登录我的应用程序时遇到麻烦。我能够成功地完成身份验证流程并在用户登录后获取 token 和用户 ID。我正在使用 Authorization Code授权用户(因为我想在过期后获得刷新 token )。然而,当前的问题是getUserPlaylists
函数描述here (仅供引用,如果第一个参数为未定义
,它将返回经过身份验证的用户的播放列表)返回最近经过身份验证的用户的播放列表,而不是当前使用该应用的用户。
示例 1:如果用户 A 登录应用程序,它将正常获取其播放列表。如果用户 B 登录该应用程序,它还会看到自己的播放列表。但是,如果用户 A 刷新页面,用户 A 会看到用户 B 的播放列表(而不是用户 A 自己的播放列表)。
示例2:用户A登录,用户B只需转到app/myplaylists
路由就可以看到用户A的播放列表。
我的猜测是,问题出在这部分代码
spotifyApi.setAccessToken(access_token);
spotifyApi.setRefreshToken(refresh_token);
最新的用户 token 会覆盖之前的用户,因此之前的用户将失去执行诸如查看自己的播放列表之类的操作的授权。
我知道我可以在不使用 Spotify Node API 的情况下使用 token 只需使用 token 来发出请求,这应该没问题,但是,如果仍然能够使用 Node API 并处理多个用户,那就太好了。
以下是最有可能存在问题的代码部分:
export const createAuthorizeURL = (
scopes = SCOPE_LIST,
state = 'spotify-auth'
) => {
const authUrl = spotifyApi.createAuthorizeURL(scopes, state);
return {
authUrl,
...arguments
};
};
export async function authorizationCodeGrant(code) {
let params = {
clientAppURL: `${APP_CLIENT_URL || DEV_HOST}/app`
};
try {
const payload = await spotifyApi.authorizationCodeGrant(code);
const { body: { expires_in, access_token, refresh_token } } = payload;
spotifyApi.setAccessToken(access_token);
spotifyApi.setRefreshToken(refresh_token);
params['accessToken'] = access_token;
params['refreshToken'] = refresh_token;
return params;
} catch (error) {
return error;
}
return params;
}
export async function getMyPlaylists(options = {}) {
try {
// if undefined, should return currently authenticated user
return await spotifyApi.getUserPlaylists(undefined, options);
} catch (error) {
return error;
}
}
非常感谢对此的任何帮助。我对我正在做的事情感到非常兴奋,所以如果有人能帮助我找到问题,那将意味着很多......
最佳答案
你走在正确的道路上。但是,当您设置访问 token 和刷新 token 时,您是在为整个应用程序设置它,并且调用您的服务器的所有用户都将使用它。不理想。
以下是 Node 中授权代码流程的工作示例:https://glitch.com/edit/#!/spotify-authorization-code
如您所见,它使用 SpotifyWebApi
的通用实例来处理身份验证,但它会为每个对用户数据的请求实例化一个新的 loggedInSpotifyApi
,因此您可以获得请求该数据的用户的数据。
如果您想使用上面的示例,您可以开始编辑“重新混合”并创建您自己的项目副本。
黑客快乐!
关于node.js - Spotify Node Web api - 多个用户的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47958746/
据我所知,不可能开发一个Web应用程序(在spotify.com之外)提供播放Spotify歌曲的自定义Web播放器,对吗?唯一的选择似乎仍然是 Spotify 播放按钮,但功能非常有限。 不过,我刚
我想从 Spotify 应用程序中运行 Spotify 搜索(以查找艺术家的轨道,我没有该艺术家的 Spotify URI,只有名称)。 我尚未在 App API 中找到用于运行搜索的功能。另一种方法
所以我看了一下spotify web api,它显然允许你播放歌曲的预览,但我想知道是否有任何方法可以播放完整的spotify歌曲而无需打开官方的spotify网络播放器或桌面应用程序。 谢谢 最佳答
我在使用 Spotify API 时发现了一个奇怪的行为。有些轨道有两个不同的 ID,即使轨道在同一张专辑中也是如此。 例子: https://api.spotify.com/v1/tracks/0Y
我只想能够通过发送/接收 http 请求(一个独立的网络应用程序,而不是 Spotify 应用程序和桌面客户端)来创建一个播放列表。我翻遍了文档,找不到明确的解决方案。有人可以指出我正确的方向吗?提前
如何将轨道添加到 Spotify 应用程序中的当前播放队列? 最佳答案 您需要创建一个未命名的播放列表来创建您自己的播放队列。 function playTracks(tracks, index) {
有没有像 Spotify 远程控制 API 这样的东西?我想编写一个应用程序,让用户控制 Spotify 桌面客户端(播放、暂停、音量、播放列表等),但我似乎无法在任何地方找到任何文档。 那里有 iO
在 Google 上找不到关于该主题的任何内容,所以我在这里问。 我有一个基于网络的 Spotify 播放器(不像官方播放器)的想法,我想知道是否可以让客户端(用户)从 Spotify 而不是我的服务
我是 playmoss 的开发人员,用户可以在其中创建具有不同音乐服务的播放列表。 我们计划以类似于 bop.fm 的方式将 Spotify 支持添加到我们的播放列表中。 语境 以这个播放列表为例(其
我正在尝试创建一个 Spotify 应用程序,但在登录时收到一条奇怪的错误消息:*19:28:57.916 I [offline_authorizer.cpp:289]无法离线登录:没有这样的用户 i
我正在尝试开发一个应用程序,在该应用程序中我需要解决一个查询,以按城市位置获取艺术家的追随者和听众的数量。 提前致谢, 笔记: 我已经检查过可以通过使用搜索方法 spotify.search(q="A
我使用 Spotify 来满足我所有的音乐需求,并且想知道是否有某种方法可以编写一个应用程序,让我可以从 Spotify 访问音乐并放慢歌曲速度并循环播放部分歌曲。我是一名音乐家,像这样的东西会有助于
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 6 年前。 Improve this qu
如何使用 Spotify API 在 Spotify 上获得“全局”热门轨道列表?例如,我的意思是现在 Spotify 上最流行的 20 首歌曲的列表(对于任何艺术家/国家/地区) 我已经在谷歌上搜索
我在 Raspberry Pi 上使用 libspotify 12.1.103.gd51f6226 Release Linux-armv6-bcm2708hardfp,我认为按照自述文件中的说明一切正
我正在尝试获取有关 Spotify iOS 应用程序中当前正在播放的歌曲的信息。场景如下:打开Spotify iOS应用程序,开始播放歌曲。将应用程序置于后台并打开我的 iOS 应用程序。有什么办法可
请告知如何在使用 Spotify Web API“https://accounts.spotify.com/api/token”获取数据时增加 token 到期时间 最佳答案 访问 token 在一小
是否可以获得歌曲的播放次数(对于当前用户)?我只找到Toplist和 Track类,但都没有告诉我用户听歌曲的频率。 最佳答案 据我所知,目前无法检索该数据。 关于spotify - 从 Spotif
我想使用 spotify api 来创建一个 webapp。在不详细介绍该项目的情况下,我想弄清楚它是否违反条款和条件。 阅读条款和条件后,我在“不要做的事情”下阅读了这一行:“聚合元数据以创建数据库
在浏览了今天发布的 Spotify Web API 文档后,似乎没有办法播放完整长度的歌曲,即使在授权之后也是如此。 API 似乎只支持 30 秒的歌曲预览。 是否有用于 javascript 的 S
我是一名优秀的程序员,十分优秀!