我需要能够使用相同的消费者密钥和秘密但不同的用户级别访问令牌来创建不同的Twitter
个实例。
我已经使用标准的Twitter OAuth登录协议,根据我的应用的消费者凭据获得了10位用户的访问令牌。现在,我想创建一个Twitter实例列表,每个实例都使用单独的Accesstoken
进行初始化。但是,我无法做到这一点。
我混淆的主要原因是,我不明白Twitter4j
如何实例化Twitter实例。我不明白TwitterFactory.getSingleton()
方法和TwitterFactory().getInstance()
方法之间的区别。
我也不明白AccessTokens是否可以在不提供消费者密钥和密钥的情况下独立工作。或者在使用Accesstokens时我是否需要提供使用者密钥和密钥。
如果有人能够详细解释我的要求的设计,我们将非常感激。
答案 0 :(得分:9)
简而言之,您可能需要这样的代码:
TwitterFactory tf = new TwitterFactory();
Twitter user1 = tf.getInstance(new AccessToken("XXX","XXX"));
Twitter user2 = tf.getInstance(new AccessToken("XXX","XXX"));
Twitter实例只能处理一个帐户。 要处理多个帐户,您需要使用TwitterFactory#getInstance(AccessToken)实例化多个Twitter实例;
不建议使用硬编码使用者密钥/密钥,您可能需要在twitter4j.properties中指定它们。 http://twitter4j.org/en/configuration.html#fileconfiguration
答案 1 :(得分:4)
让我们明确一点:Twitter
和TwitterStream
个实例之间存在差异。 Twitter
个实例确实可以拥有一个消费者密钥+秘密和多个OAuth令牌。这回答了OP的问题。
现在,对于Twitterstream
个实例(访问Twitter Streaming API所需的实例),这是不同的。您只能在给定时间运行一个TwitterStream ojbect ,而不是几个,即使它们具有不同的OAuth令牌。
坚持“一个帐户,一个帐户”的概念,您将获得最佳服务 应用程序,一个打开的连接“当连接到 stream.twitter.com端点。如果有其他不同的应用程序 你计划使用stream.twitter.com,我会努力遵循 相同的1:1:1概念。
你可能会发现有时stream.twitter.com让你逃脱 这里或那里有更多开放的联系,但这种行为不应该 依靠。
我首先给予Yusuke Yamamoto赏金,因为他首先提供了正确的答案,并且如果它为你澄清事情,也要考虑支持这个答案! ; - )