2010-09-01 4 views
0

J'ai une application qui fonctionne sur un serveur, écoute des tweets différents en utilisant l'API de streaming, et envoie parfois des tweets. Cela a bien fonctionné en utilisant l'ancien système d'authentification de Twitter, mais l'utilisation d'OAuth a compliqué un peu les choses.twitter twitter permanent utilisant jtwitter et SignpostClient

Je peux démarrer l'application avec succès et mon navigateur ouvre la page OAuth de Twitter. Si j'entre le code PIN, l'application fonctionne correctement, mais je dois pouvoir redémarrer l'application sans surveillance. La FAQ OAuth de Twitter http://dev.twitter.com/pages/oauth_faq indique que les jetons n'expirent jamais, donc ce que je voudrais faire est de réutiliser le jeton d'autorisation chaque fois que l'application commence.

Comment puis-je faire cela? Ou y a-t-il une autre façon d'autoriser une seule fois?

Répondre

1

Je vais répondre à ma propre question car la solution est assez simple. Comme décrit dans cette page http://dev.twitter.com/pages/oauth_single_token Si vous créez une application avec des cas d'utilisation mono-utilisateur, vous pouvez récupérer le jeton d'accès permanent et accéder aux secrets de jetons à partir du panneau de configuration de votre application sur Twitter. Sur la page Détails de l'application, cliquez sur le lien Mon jeton d'accès.

La lecture de la classe OAuthSignPostClient je remarquai que la mise en œuvre de jtwitter par défaut utilise la signature de la méthode suivante:

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

Mais il peut aussi être appelé en utilisant:

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

donc mon code application client a modifié à partir de:

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); 

Et tout va bien.