Постоянный твиттер с помощью jtwitter и SignpostClient - PullRequest
0 голосов
/ 01 сентября 2010

У меня есть приложение, которое работает на сервере, прослушивает различные твиты с помощью потокового API, а затем время от времени отправляет твиты. Это работало нормально при использовании старой системы аутентификации в твиттере, но использование OAuth немного усложнило.

Я могу успешно запустить приложение, и мой браузер открывает страницу OAuth в Twitter. Если я ввожу PIN-код, приложение работает нормально, но я должен иметь возможность перезапустить приложение без присмотра. FAQ по OAuth в Twitter http://dev.twitter.com/pages/oauth_faq говорит о том, что токены не имеют срока действия, поэтому я хотел бы повторно использовать токен авторизации при каждом запуске приложения.

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

1 Ответ

1 голос
/ 01 сентября 2010

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

Как описано на этой странице 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);

И все хорошо.

...