2010-09-01 4 views
0

У меня есть приложение, которое работает на сервере, прослушивает различные твиты, используя потоковое api, а затем изредка отправляет твиты. Это отлично работало с использованием старой системы проверки подлинности twitter, но использование OAuth немного осложнило ситуацию.Постоянный твиттер oauth с использованием jtwitter и SignpostClient

Я могу успешно запустить приложение, и мой браузер открывает страницу OAuth Twitter. Если я вхожу в ПИН, приложение работает нормально, но мне нужно перезапустить приложение без присмотра. Часто задаваемые вопросы OAuth в Twitter Oговорят, что токены никогда не истекают, поэтому я хотел бы использовать повторный токен авторизации каждый раз, когда приложение запускается.

Как я могу это сделать? Или есть другой способ авторизации только один раз?

ответ

1

Я отвечу на свой вопрос, потому что решение довольно простое.

Как описано в этой статье http://dev.twitter.com/pages/oauth_single_token, если вы создаете приложение с однопользовательскими вариантами использования, вы можете получить токен постоянного доступа и секреты доступа к токенам с панели управления приложениями в Twitter. На странице «Сведения о приложении» нажмите ссылку «Мой токен доступа».

Чтение через класс OAuthSignPostClient я заметил, что реализация по jtwitter умолчанию использует метод следующую подпись:

public OAuthSignpostClient(String consumerKey, String consumerSecret, 
String callbackUrl) 

Но она также может быть вызвана с помощью:

public OAuthSignpostClient(String consumerKey, String consumerSecret, 
      String accessToken, String accessTokenSecret) 

Так мое приложение код клиента имеет изменено с:

OAuthSignpostClient client = new OAuthSignpostClient(MY_OAUTH_KEY, 
MY_OAUTH_SECRET, "oob"); 

до:

OAuthSignpostClient client = new OAuthSignpostClient(MY_OAUTH_KEY, 
MY_OAUTH_SECRET, MY_ACCESS_TOKEN, MY_ACCESS_TOKEN_SECRET); 

И все в порядке.