微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 如何使用Twitter4j获取没有用户身份验证的Twitter公共时间线?

我写了一些代码,允许用户登录他的Twitter帐户并使用Twitter4j和 this tutorial发送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应用程序和用户代码here.

现在,如果用户登录,我如何获得公共时间表?在这种情况下,没有OAUTH_TOKEN和OAUTH_SECRET,并且上面显示的请求不起作用,因为空字符串设置为ConfigurationBuilder.setoAuthAccesstoken和ConfigurationBuilder.setoAuthAccesstokenSecret.

那么,如果它存在,那么获取公共时间线的请求是什么,没有OAUTH_TOKEN和OAUTH_SECRET?

解决方法

这当然是可能的,我已经尝试过了.如果您的疑问只是关于访问令牌和访问令牌秘密是空的,那么您应该尝试使用应用页面中提供的访问令牌.通过应用页面我的意思是,您已经注册了您的Twitter应用程序的链接.

如果您转到dev.twitter.com并转到您的应用设置,您可以看到消费者密钥,消费者密钥,访问令牌和访问令牌密钥.利用这些并遵循我的下面的代码,它应该工作,

ConfigurationBuilder cb = new ConfigurationBuilder();
        cb.setDebugEnabled(true)
                .setoAuthConsumerKey("B*************Q")
                .setoAuthConsumerSecret(
                        "l*************o")
                .setoAuthAccesstoken(
                        "1*************s")
                .setoAuthAccesstokenSecret(
                        "s*************s");
        TwitterFactory tf = new TwitterFactory(cb.build());
        twitter = tf.getInstance();
        try {
            List<Status> statuses;
            String user;
            user = "Replace this with the screen name whose Feeds you want to fetch";
            statuses = twitter.getUserTimeline(user);
            Log.i("Status Count",statuses.size() + " Feeds");

        } catch (TwitterException te) {
            te.printstacktrace();
        }

我使用了twitter 4j 3.03.jar.

原文地址:https://www.jb51.cc/android/316779.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐