【发布时间】:2017-05-26 11:49:07
【问题描述】:
我在 R 方面有大约一年的经验,但我真的很难把我的脑袋绕在循环上,我真的很感谢你们的任何解释以及答案!
我正在尝试使用 Spotify API 循环播放音乐类别列表(这是 API 术语,它们在 Spotify 应用中被称为流派/情绪)并检索播放列表列表。要检索一个类别的播放列表,我可以使用以下内容:
我想这是一个相当简单的问题,不需要测试和获取密钥。 如果需要,可以使用 Spotify 文档(链接如下)轻松获取密钥,如果需要,我可以帮助设置(对于这个或任何其他 Spotify 项目)。
#Setup up; Store keys and authenticate
ClientID <- "************"
ClientSecret <- "***********"
#OAuth
spotifyEndpoint <- oauth_endpoint(NULL,
"https://accounts.spotify.com/authorize",
"https://accounts.spotify.com/api/token")
spotifyApp <- oauth_app("spotify", ClientID, ClientSecret)
spotifyToken <- oauth2.0_token(spotifyEndpoint, spotifyApp)
#Create URL to call
CatPlaylist <- paste("https://api.spotify.com/v1/browse/categories/","funk","/playlists",sep="")
#Call api using GET
CatPlaylist <- httr::GET(CatPlaylist, spotifyToken)
#Transform results form JSON
CatPlaylist <- jsonlite::fromJSON(toJSON(content(CatPlaylist)))
#Transform into df
CatPlaylist <- t(data.frame(CatPlaylist$playlists$items$name))
我将如何循环以收集其他类别,有效地将“funk”替换为“party”或“chill”之类的东西。
编辑:下面添加的尝试 我尝试了以下方法,其中
Cats
保存每次调用的完整 URL。
final = NULL
for(i in 1:length(Cats)){
CatPlaylist <- paste("https://api.spotify.com/v1/browse/categories/",i,"/playlists",sep="")
CatPlaylist <- GET(CatPlaylist, spotifyToken)
CatPlaylist <- jsonlite::fromJSON(toJSON(content(CatPlaylist)))
CatPlaylist <- t(data.frame(CatPlaylist$playlists$items$name))
final <- rbind(CatPlaylist,final)}
API 文档 https://developer.spotify.com/web-api/get-categorys-playlists/
系统信息:R 3.3.2 R Studio 版本 1.0.143 OS Sierra 10_12_3
提前致谢:)
【问题讨论】: