据我了解,当我运行这段代码时,Jraw中的OAuthHelper应该自动生成一个访问 token ,但事实并非如此。我究竟做错了什么?我在应用程序平台字段中输入了一个随机值。这有关系吗?
public static void main(String[] args) {
UserAgent userAgent = new UserAgent(
"appPlatform",
"appName",
"version",
"userName");
Credentials credentials = Credentials.script(
"userName",
"password",
"clientId",
"clientSecret"
);
NetworkAdapter adapter = new OkHttpNetworkAdapter(userAgent);
RedditClient redditClient = OAuthHelper.automatic(adapter, credentials);
// frontPage() returns a Paginator.Builder
DefaultPaginator<Submission> frontPage = redditClient.frontPage()
.sorting(SubredditSort.TOP)
.timePeriod(TimePeriod.DAY)
.limit(30)
.build();
Listing<Submission> submissions = frontPage.next();
for (Submission s : submissions) {
System.out.println(s.getTitle());
}
}
这是堆栈跟踪:
应该注意RedditAuthenticator.java:34是这一行:
RedditClient redditClient = OAuthHelper.automatic(适配器,凭证);
最佳答案
我相信我已经找到了原因。在Reddit中创建应用程序时,需要在此部分中选择脚本:
我正在调试JRAW,以查看其作用,并在构建HTTP请求以发送到Reddit时,正在为应用程序的类型添加参数。我不知道您是否可以通过某种方式将JRAW配置为使用其他任何类型,但其默认使用的是“脚本”
编辑:有关JRAW的不同身份验证方案的更多信息,请参见此处-https://mattbdean.gitbooks.io/jraw/content/v/v1.1.0/oauth2.html
关于java - 获取JRaw的空访问 token ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52601242/