【问题标题】:Is there a way for Twitter4J to verify credentials by only using consumer key and secret?Twitter4J 有没有办法只使用消费者密钥和秘密来验证凭据?
【发布时间】:2016-05-07 14:54:44
【问题描述】:

我正在开发一个 Android 应用程序,它允许用户自己配置 Twitter 消费者密钥和秘密(未配置访问令牌和访问令牌秘密)。我想在显示登录页面之前验证如下所示的密钥和秘密,但它会引发异常:

Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(key, secret);
        try {
            User user = twitter.verifyCredentials(); // this line throws an exception
        } catch (Exception e) {
            e.printStackTrace();
        }

例外是:

Twitter 凭据验证失败。java.lang.IllegalStateException: 缺少身份验证凭据。看 http://twitter4j.org/en/configuration.html了解详情

有没有办法在没有Access Token和Access Token Access的情况下验证消费者Key和Secret?

【问题讨论】:

    标签: oauth twitter-oauth twitter4j


    【解决方案1】:

    你遇到的异常信息很清楚:

    缺少身份验证凭据。

    在尝试以编程方式访问 Twitter API 之前,您需要先正确进行身份验证。仅使用 setOAuthConsumer(key, secret) 不会设置/配置必要的访问令牌信息。这两个信息都需要提供(提示:如果您对此感兴趣,this introduction 会为您提供有关 OAuth 身份验证如何工作的概述)。

    根据http://twitter4j.org/en/configuration.html,您可以通过ConfigurationBuilder 实例初始化代码,如下所示:

    ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true)
      .setOAuthConsumerKey("*your-consumer-key*")
      .setOAuthConsumerSecret("*your-consumer-secret*")
      .setOAuthAccessToken("*your-access-token*")
      .setOAuthAccessTokenSecret("*your-access-token-secret*");
    TwitterFactory tf = new TwitterFactory(cb.build());
    Twitter twitter = tf.getInstance();
    

    给定一个有效的AccessToken/AccessTokenSecret,你应该可以调用:

    try {
        User user = twitter.verifyCredentials(); 
        // ... do further things....
    } catch (Exception e) {
            e.printStackTrace();
    }
    

    希望对你有帮助。

    【讨论】:

    • 谢谢@MWiesner。我的目的是检查密钥和秘密是否有效。我意识到我可以通过调用这个来检查: Twitter twitter = new TwitterFactory().getInstance(); twitter.setOAuthConsumer(密钥,秘密); twitter.getOAuthRequestToken();如果key和secret无效,调用twitter.getOAuthRequestToken()时会抛出异常。
    猜你喜欢
    • 2012-03-10
    • 2016-04-14
    • 2011-10-13
    • 1970-01-01
    • 2013-01-23
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    相关资源
    最近更新 更多