7

我需要能够使用相同的使用者密钥和秘密但不同的用户级别访问令牌Twitter制作不同的实例。

我已经使用标准 Twitter OAuth 登录协议根据我的应用程序的消费者凭据获取了 10 个用户的访问令牌。现在,我想创建一个 Twitter 实例列表,每个实例都使用单独的Accesstoken. 但是,我无法做到这一点。

我造成混淆的主要原因是,我不明白如何Twitter4j实例化 Twitter 实例。我不明白TwitterFactory.getSingleton()方法和TwitterFactory().getInstance()方法之间的区别。

我也不明白 AccessTokens 是否可以在不提供消费者密钥和秘密的情况下独立工作。或者我是否需要在使用 Accesstokens 时提供消费者密钥和秘密。

如果有人可以详细解释我的要求的设计,将不胜感激。

4

2 回答 2

11

简而言之,您可能需要这样的代码:

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

于 2013-08-29T11:42:16.963 回答
4

该死的谷歌搜索会为我节省100个代表。

让我们明确一点:实例Twitter之间存在差异。实例确实可以有一个消费者密钥+秘密和多个 OAuth 令牌。这回答了OP的问题。TwitterStreamTwitter

现在,对于Twitterstream实例(访问 Twitter 流 API 所需的实例),情况就不同了。在给定时间只能运行一个 TwitterStream 对象,即使它们具有不同的 OAuth 令牌,也不能运行多个。

dev.twitter.com 报道

在连接到 stream.twitter.com 端点时,最好坚持“一个帐户、一个应用程序、一个开放连接”的概念。如果您计划与 stream.twitter.com 一起使用其他不同的应用程序,我会努力遵循相同的 1:1:1 概念。

您可能会发现有时 stream.twitter.com 可以让您在这里或那里获得更多开放的连接,但不应指望这种行为。

我赏金给 Yusuke Yamamoto,因为他首先提供了正确的答案,如果它为你澄清了事情,请考虑也支持这个!;-)

于 2013-08-29T11:43:25.323 回答