Я хочу получить доступ к образцу API публичной потоковой передачи, используя Twitter4J. Я создал приложение на Twitter и создал соответствующие ключи и токены (используя портал Twitter).Доступ к API Twitter Stream с помощью Twitter4J и OAuth
Но он продолжает терпеть неудачу при аутентификации.
Вот код, который соответствует документации. Многие из существующих сообщений форума устарели.
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true);
cb.setOAuthConsumerKey("XXXXX");
cb.setOAuthConsumerSecret("XXXXXXXX");
cb.setOAuthAccessToken("xxxxxxxx-xxxxxxxxxxxxxxxxxxxxxx");
cb.setOAuthAccessTokenSecret("XXXXXXXXXXXXXXXXXXXXXXX");
OAuthAuthorization auth = new OAuthAuthorization(cb.build());
TwitterStreamFactory factory = new TwitterStreamFactory();
this.twitterStream = factory.getInstance(auth);
this.twitterStream.addListener(listener);
this.twitterStream.sample();
Ошибки я получаю:
401:Authentication credentials (https://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid consumer key/secret, access token/secret, and the system clock is in sync.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Error 401 Unauthorized</title>
</head>
<body>
<h2>HTTP ERROR: 401</h2>
<p>Problem accessing '/1.1/statuses/sample.json?stall_warnings=true'. Reason:
<pre> Unauthorized</pre>
</body>
</html>
Вы пытались создать завод с помощью 'new TwitterStreamFactory (cb.build)' вместо того, чтобы проходить аутентификация на 'getInstance()'? –
Я не помню, как это было так давно! В конце концов, мне пришлось вручную установить соединение и открыть поток без библиотеки. –
Ах, слишком плохо ... –