【问题标题】:I am trying to update status to twitter using twitter4j but it does not work我正在尝试使用 twitter4j 将状态更新到 twitter,但它不起作用
【发布时间】:2014-04-04 13:35:01
【问题描述】:

我成功获得了所有凭据(Oauth_token,Oauth_verifier)。 有了它,我尝试向 twitter 帐户发布文本,但它总是失败并显示错误消息“未找到身份验证挑战

我找到了一些解决方案,例如

"自动检查时区", “导入最新的 twitter4j 库”等。

但检查后还是不行。

有没有人可以给我指路。

代码如下

    public static void updateStatus(final String pOauth_token,final String pOauth_verifier) {
    new Thread() {
        public void run() {
            Looper.prepare();

            try {
                TwitterFactory factory = new TwitterFactory();
                AccessToken accessToken = new AccessToken(pOauth_token,pOauth_verifier);

                Twitter twitter = factory.getInstance();
                twitter.setOAuthConsumer(Cdef.consumerKey, Cdef.consumerSecret);
                twitter.setOAuthAccessToken(accessToken);

                if (twitter.getAuthorization().isEnabled()) {                   
                    Log.e("btnTwSend","인증값을 셋팅하였고 API를 호출합니다.");
                    Status status = twitter.updateStatus(Cdef.sendText + " #" + String.valueOf(System.currentTimeMillis()));
                    Log.e("btnTwSend","status:" + status.getText());
                }

            } catch (Exception e) {
                Log.e("btnTwSend",e.toString());
            }
        };
    }.start();
}

【问题讨论】:

    标签: twitter4j


    【解决方案1】:

    “未找到身份验证挑战”

    我认为您的代码中缺少访问令牌密码。这就是您收到此异常的原因。

    尝试以下操作:

    ConfigurationBuilder configurationBuilder;
    Configuration configuration;
    
        // Set the proper configuration parameters
        configurationBuilder = new ConfigurationBuilder();
    
        configurationBuilder
            .setOAuthConsumerKey(TWITTER_CONSUMER_KEY);
        configurationBuilder
            .setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET);
    
        // Access token 
        configurationBuilder.setOAuthAccessToken(ACCESS_TOKEN);
        // Access token secret
        configurationBuilder
                .setOAuthAccessTokenSecret(ACCESS_TOKEN_SECRET);
    
        // Get the configuration object based on the params
        configuration = configurationBuilder.build();
        // Pass it to twitter factory to get the proprt twitter instance.
        twitterFactory = new TwitterFactory(configuration);
        twitter = twitterFactory.getInstance();
    
        // use this instance to update
        twitter.updateStatus("Your status");
    

    【讨论】:

    • I certainly set the 4 key and that is follows : consumer : m0Ju0uzvuiFVZrZdXhBxpdId4 , tA8jaldE1lWy7D0YWlzXqJvgD5wkCv7PLUhYseiu8H2py53hOG access : HK2l8H2aCU46FXyW4InKrryq8LZ5kuvMLlla79Ng , 2NSRIrqvSEVSm70o0ecKKnfKB6fZDDMIvUnMLjS1PsY It's okay.因为是测试账号。但不起作用...
    • 我有一个问题。我们可以在chat.stackoverflow.com/rooms/50550/…讨论吗
    【解决方案2】:

    我终于找到原因了。

    我认为参数名为 'oauth_token' , 'oauth_verifier' 是 accesstoken 的成员, 但事实并非如此。

    我只需要再通过一种方法来获得正确的密钥。

    而这种方式需要 'oauth_token' , 'oauth_verifier' 来获取 accesstoken。

    此代码必须在下面再添加一个代码:

    mAccessToken = mTwitter.getOAuthAccessToken(REQUEST_TOKEN,OAUTH_VERIFIER);

    【讨论】:

      猜你喜欢
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      相关资源
      最近更新 更多