new - twitter token
IntegraciĆ³n de Twitter: par clave de consumidor/secreto ya establecido (2)
Al observar tanto el código como la documentación, parece que no se recomienda su método para crear instancias de una instancia de Twitter
. Si desea proporcionar la configuración mediante programación (y no usar propiedades), parece que necesita proporcionar una Configuration
a TwitterFactory
.
... ConfigurationBuilder builder = new ConfigurationBuilder(); builder.setOAuthConsumerKey(CONSUMER_KEY); builder.setOAuthConsumerSecret(CONSUMER_SECRET); Configuration configuration = builder.build(); TwitterFactory factory = new TwitterFactory(configuration); Twitter twitter = factory.getInstance(); ...
El singleton proporcionado por una fábrica que no se ha suministrado con una configuración tiene como valor predeterminado el uso de una implementación de Authorization
respaldada por una configuración PropertyConfiguration
. Si no hay un archivo de propiedades, parece que no debe instanciar una autenticación OAuthAuthorization
, que es lo que causaría la excepción que está viendo. Pero PropertyConfiguration
busca todo el CLASSPATH
para un archivo de propiedades apropiado, por lo que tal vez haya pasado por alto uno. Podría intentar registrar la clave y el secreto justo después de obtener la instancia de Twitter
para ver a qué están configurados:
System.out.println("key:" + twitter.getConfiguration().getOAuthConsumerKey()); System.out.println("secret: " + twitter.getConfiguration().getOAuthConsumerSecret());
Intentando integrar mi aplicación web con Twitter usando twitter4j lib.
He registrado mi aplicación en el sitio de Twitter y obtuve Consumer key
Consumer secret
y Consumer secret
valores Consumer secret
.
Nada especial, paso OAuth
estándar.
código:
public class TwitterService {
private final String CONSUMER_KEY = "xxx";
private final String CONSUMER_SECRET = "yyy";
public String fav() {
Twitter twitter = TwitterFactory.getSingleton();
twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
...
excepción:
Caused by: java.lang.IllegalStateException: consumer key/secret pair already set.
No tengo más configuración para la key
y el secret
, cualquier .properties
u otro archivo.
EDITAR:
línea de comentario twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
causa la excepción:
java.lang.IllegalStateException: OAuth consumer key/secret combination not supplied
Mi corazonada es que estás configurando las variables finales privadas y luego twitter.setOAuthConsumer () intenta hacer lo mismo. Solo deberías necesitar uno o el otro. ¿Has intentado comentar la línea twitter.setOAuthConsumer ()?
Los documentos explican la forma "preferida" de establecerlos.