2013-06-20 41 views
0

我使用此示例link在Twitter中进行搜索。如何使用Twitter4J获取推文而无需凭据?

这是我的代码:

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     searchTweets(); 
    } 

    private void searchTweets() { 
     Twitter twitter = new TwitterFactory().getInstance(); 
     try { 
      Query query = new Query("android"); 
      QueryResult result; 
      do { 
       result = twitter.search(query); 
       List<Status> tweets = result.getTweets(); 
       for (Status tweet : tweets) { 
        System.out.println("@" + tweet.getUser().getScreenName() + " - " + tweet.getText()); 
       } 
      } while ((query = result.nextQuery()) != null); 
      System.exit(0); 
     } catch (TwitterException te) { 
      te.printStackTrace(); 
      System.out.println("Failed to search tweets: " + te.getMessage()); 
      System.exit(-1); 
     } 
    } 
} 

我使用twitter4j核-3.0.3

我面对此错误消息:

Unable to start activity {...MainActivity}: java.lang.IllegalStateException: 
Authentication credentials are missing. See http://twitter4j.org/configuration.html for the detail. 

可是,为什么我有设置一些Twitter的凭据来获取推文?

我的代码有问题吗?

谢谢!因为API 1.1

回答

1

认证是必需的,因为它的documentation说:

在1.1版本中,我们将要求应用程序验证所有的使用OAuth 1.0a的或唯一的应用程序的认证请求。这种可见性不仅可以防止滥用行为,还可以帮助我们进一步了解应用程序的类别如何使用API​​。随着我们不断发展平台,我们将运用这种理解来更好地满足开发人员的需求。目前,所有身份验证都需要用户上下文,但在接下来的几周内,我们将推出对不需要用户上下文的身份验证形式的支持。

+0

是的男人。你是对的。很长一段时间,直到一些答案,但无论如何,谢谢你。 – androidevil

+0

我知道,已经太晚了......但是当我在Google上搜索时寻找类似的东西可能会有所帮助,例如我。 –

+0

是的。当然! – androidevil

1

我使用scribe库来验证OAuth协议的许多种类的API,例如twitter,我希望这个信息可以帮助你。

https://github.com/fernandezpablo85/scribe-java

+0

很长一段时间,直到一些答案,但无论如何,谢谢。也许有人可以看到这个参考。我不记得我是如何解决这个问题的。我想我已经创建了一个配置文件并使用其凭据来询问推文。 – androidevil

相关问题