我编写了一些代码,以允许用户使用Twitter4j登录其Twitter帐户并发送Tweet,可参考此教程。
现在,我也可以使用该代码获取公共账户的推文。
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setHttpConnectionTimeout(10000)
.setHttpReadTimeout(10000)
.setOAuthConsumerKey(Config.TWITTER_CONSUMER_KEY)
.setOAuthConsumerSecret(Config.TWITTER_CONSUMER_SECRET)
.setOAuthAccessToken(Utils.getPrefsString(getActivity(),
TwitterPrefsFragment.PREF_KEY_OAUTH_TOKEN, "")) // empty if not authentified
.setOAuthAccessTokenSecret(Utils.getPrefsString(getActivity(),
TwitterPrefsFragment.PREF_KEY_OAUTH_SECRET, "")); // empty if not authentified
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
List<twitter4j.Status> statuses = twitter.getUserTimeline(SOME_PUBLIC_TWITTER_ACCOUNT, new Paging(1, 50));
但这仅在用户已经通过oauth获取到令牌和密钥并保存在首选项中时有效。
如何获取Twitter的公共时间轴而不需要访问令牌,即无需用户进行身份验证?
编辑
我重新阐述我的问题以使其更清晰:
我已经使用这里给出的代码对我的Twitter应用和用户进行了身份验证。
那么,如果用户没有登录,我怎样才能获取公共时间轴呢?在这种情况下,没有OAUTH_TOKEN
和OAUTH_SECRET
,所以上面显示的请求无法工作,因为一个空字符串被设置到了ConfigurationBuilder.setOAuthAccessToken
和ConfigurationBuilder.setOAuthAccessTokenSecret
中。
那么,如果存在的话,获取没有OAUTH_TOKEN
和OAUTH_SECRET
的公共时间轴的请求是什么?