spotify-web-api-java无效的授权代码

时间:2018-11-09 09:14:28

标签: java spotify

我遇到了这个库,以获取当前播放曲目的名称。因此,我认为使用客户端凭据流会给我无效的用户名。在这里进行了搜索,发现您不应该使用它们。因此,我继续进行如下编写的“授权代码流”。

public static void main(String... args) {
    TrackSong trackSong = new TrackSong();
    String code = getAuthorizationCode(trackSong.api);
    Logger.getAnonymousLogger().info("Authorization URL: "+code);
    try {
        AuthorizationCodeCredentials authorizationCodeCredentials = trackSong.api.authorizationCode(code).build().execute();
        trackSong.api.setAccessToken(authorizationCodeCredentials.getAccessToken());
        trackSong.api.setRefreshToken(authorizationCodeCredentials.getRefreshToken());
        Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(trackSong::writeSong, 0, 10, TimeUnit.SECONDS);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

private static String getAuthorizationCode(SpotifyApi api) {
    return api.authorizationCodeUri().state("x4xkmn9pu3j6ukrs8n")
                .scope("user-read-currently-playing,user-read-playback-state")
                .show_dialog(true)
                .build()
                .execute()
                .toString();
}

实际的SpotifyApi对象为

new SpotifyApi.Builder().setClientId("2e411043bc7f44428f5ce91c328ac6b8")
.setClientSecret(SPOTIFY_SECRET)
.setRedirectUri(SpotifyHttpManager.makeUri("http://localhost:8888/"))
.build()

我希望它与程序的其余部分一起继续,但是相反,它只是引发了BadRequestException。我不怎么尝试,因为我不知道要更改什么,但是我尝试了不同的方法来获取授权码。尽管我确实相信这是由于我没有处理回调。

0 个答案:

没有答案