2014-02-11 4 views
0

Я хочу получить доступ к образцу 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> 
+0

Вы пытались создать завод с помощью 'new TwitterStreamFactory (cb.build)' вместо того, чтобы проходить аутентификация на 'getInstance()'? –

+0

Я не помню, как это было так давно! В конце концов, мне пришлось вручную установить соединение и открыть поток без библиотеки. –

+0

Ах, слишком плохо ... –

ответ

0

Причина ошибки 401 Ошибка проверки подлинности. Это может произойти по двум причинам

  • неверные учетные данные в конфигурации [Различные способы для конфигурирования учетных поясняются here]

  • Неправильная система Clock [Синхронизация системных часов даже мысли вы чувствуете, что время правильное]

Вторая причина может быть причиной, когда вы можете опубликовать тви et, просмотреть временную шкалу и т. д. с помощью API и не использовать поток твиттера. [Вы получаете только 401 при использовании только потокового API]

Смежные вопросы