Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spotify api获取访问令牌/代码_Java_Spotify - Fatal编程技术网

Java Spotify api获取访问令牌/代码

Java Spotify api获取访问令牌/代码,java,spotify,Java,Spotify,所以我想用这个图书馆 访问我的Spotify帐户,但我不知道如何获取acces令牌,但我不知道如何从授权URL获取响应我创建了一个访问URL的输入流并打印出响应,但我没有给出正确的输出我还创建了一个服务器并接收响应但我什么也没得到,因为我从来没有这么多地使用java服务器/网络,所以我可能犯了一个错误 公共类privat{ public privat()引发IOException{ 最后一个字符串clientId=“clientId”; 最后一个字符串clientSecret=“clientS

所以我想用这个图书馆 访问我的Spotify帐户,但我不知道如何获取acces令牌,但我不知道如何从授权URL获取响应我创建了一个访问URL的输入流并打印出响应,但我没有给出正确的输出我还创建了一个服务器并接收响应但我什么也没得到,因为我从来没有这么多地使用java服务器/网络,所以我可能犯了一个错误

公共类privat{
public privat()引发IOException{
最后一个字符串clientId=“clientId”;
最后一个字符串clientSecret=“clientSecret code”;
最终字符串重定向URI=”http://localhost:8888/callback";
最终Api=Api.builder()
.clientId(clientId)
.clientSecret(clientSecret)
.redirectURI(redirectURI)
.build();
/*设置应用程序需要用户提供的必要范围*/
最终列表范围=Arrays.asList(“用户读取私有”、“用户读取电子邮件”);
/*设置状态。这用于防止跨站点请求伪造*/
最终字符串状态=“someExpectedStateString”;
字符串authorizeURL=api.createAuthorizeURL(范围、状态);
System.out.println(authorizeURL);
/*通过将用户发送到authorizeURL继续,该URL类似于
https://accounts.spotify.com:443/authorize?client_id=5fe01282e44241328a84e7c5cc169165&response_type=code&redirect_uri=https://example.com/callback&scope=user-读取私人%20用户读取电子邮件&状态=我选择的某些状态
*/
/*获取访问令牌所需的应用程序详细信息*/
最终字符串代码=”;/*在哪里可以找到此*/
/*发出令牌请求。异步请求通过.getAsync方法和同步请求发出
*使用.get方法生成。这适用于所有类型的请求*/
最终设置表Future authorizationCodeCredentialsFuture=api.authorizationCodeGrant(code.build().getAsync();
/*添加回调以处理成功和失败*/
Futures.addCallback(authorizationCodeCredentialsFuture,new FutureCallback()){
@凌驾
成功时公共无效(AuthorizationCodeCredentials AuthorizationCodeCredentials){
/*已成功检索令牌*/
System.out.println(“成功检索访问令牌!”+authorizationCodeCredentials.getAccessToken());
System.out.println(“访问令牌在“+authorizationCodeCredentials.getExpiresIn()+”秒”后过期”);
System.out.println(“幸运的是,我可以使用这个刷新令牌刷新它!”+authorizationCodeCredentials.getRefreshToken());
/*设置访问令牌和刷新令牌,以便在需要时使用它们*/
setAccessToken(authorizationCodeCredentials.getAccessToken());
setRefreshToken(authorizationCodeCredentials.getRefreshToken());
}
@凌驾
失败时的公共无效(可丢弃){
/*假设客户端id无效,或者代码被多次使用,
*请求将失败。失败原因写在可丢弃的消息中*/
System.out.println(throwable.getMessage());
System.out.println(throwable.getStackTrace());
}
});
}

}
一旦用户授权您的应用程序,
code
作为查询参数提供给您的回调URL。您需要找到一种从那里获取代码的方法—您可以在
localhost:8888
上启动一个web服务器,从那里获取代码—或者您可以指示用户在重定向URI的查询参数中复制代码。您可以找到有关授权程序的更多信息(看起来,
授权代码
隐式授权
流将对您有效)。

一旦用户授权您的应用程序,
代码
将作为您的回调URL的查询参数。您需要找到一种从那里获取代码的方法—您可以在
localhost:8888
上启动一个web服务器,从那里获取代码—或者您可以指示用户在重定向URI的查询参数中复制代码。您可以找到有关授权程序的更多信息(看起来,
授权代码
隐式授权
流都适用于您)