使用twitter中的twitter4j在twitter上发布状态

时间:2014-08-28 18:58:53

标签: android android-activity twitter android-twitter

我试图将状态更新发布到Twitter。我正在使用Twitter4j lib。我的代码运行没有崩溃,但在日志猫中说“401:身份验证凭据 (https://dev.twitter.com/pages/auth)遗失或不正确。确保您已设置有效的使用者密钥/密钥,访问令牌/密钥,并且系统时钟处于同步状态。

{"request":"\/1.1\/statuses\/update.json","error":"Read-only application cannot POST."}

任何帮助?我已经注册了twitter,并检查了读写权限。

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

    Runnable runnable = new Runnable() {
        public void run() {
            ConfigurationBuilder builder = new ConfigurationBuilder();
            builder.setOAuthConsumerKey("kkwfh72794883jjg");
            builder.setOAuthConsumerSecret("77j3jgweqwewerrud3434567hgfd");



            // Access Token
            String access_token = "lokiujyhtgrfedvwn325zckjdhdgeAHGsw23";
            // Access Token Secret
            String access_token_secret = "QsRgfgHJMsjeh5762JHF2dgswrfMNQljsG";

            AccessToken accessToken = new AccessToken(access_token, access_token_secret);
            Twitter twitter = new TwitterFactory(builder.build()).getInstance(accessToken);

            // Update status
            try {
                twitter4j.Status response = twitter.updateStatus("updated via myapp");

                Log.d("Status", "> " + response.getText());

                // Error in updating status


                } catch (TwitterException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                Log.d("Twitter Update Error", e.getMessage());
            }


        }
    };
    Thread mythread = new Thread(runnable);
    mythread.start();


}

2 个答案:

答案 0 :(得分:0)

我遇到了类似的问题。我做的是:

  1. 检查您的应用是否具有读写权限
  2. 如果没有,请检查权限radiobutton,然后单击“更新设置”
  3. 之后,您必须手动重新生成访问令牌(我也重新生成了消费者密钥)
  4. 希望这会有助于其他挣扎者。

答案 1 :(得分:0)

我认为你应该改变你的代码: 像这样:

ConfigurationBuilder builder = new ConfigurationBuilder();
builder.setOAuthConsumerKey("kkwfh72794883jjg");
builder.setOAuthConsumerSecret("77j3jgweqwewerrud3434567hgfd");
OAuthAuthorization auth = new OAuthAuthorization(builder.build());
// Access Token
String access_token = "lokiujyhtgrfedvwn325zckjdhdgeAHGsw23";
// Access Token Secret
String access_token_secret = "QsRgfgHJMsjeh5762JHF2dgswrfMNQljsG";
Twitter twitter = new TwitterFactory().getInstance(auth);