Постоянный твиттер oauth с использованием jtwitter и SignpostClient

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

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

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


person Hibiscus    schedule 01.09.2010    source источник


Ответы (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");

to:

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

И все хорошо.

person Hibiscus    schedule 01.09.2010