使用JTwitter更新Twitter状态

时间:2012-06-24 20:27:17

标签: java android

我正在尝试在android中编写一个代码来帮助我在我的应用程序中更新我的推特状态,但我遇到了问题.Below是代码片段

public void onClick(View v) {
    String statusText = edit.getText().toString();
    new PostToTwitter().execute(statusText);
}

public static String getLogtag() {
    return LOGTAG;
}

class PostToTwitter extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {
        try{
        Twitter twitter = new Twitter("screenname", "password");
        // twitter.getStatus("winterstein");
        twitter.setAPIRootUrl("https://twitter.com/#!/nindevworks");
        twitter.setStatus(params[0]);
        Log.d(TweetActivity.getLogtag(),"Successfully Posted: " + params[0]);
        return "Successfully Posted: " + params[0];
        } catch (TwitterException e) {
            Log.e(TweetActivity.getLogtag(),"Died ", e);
            e.printStackTrace();
            return "Failed Posting: " + params[0];
        }

    }

    @Override
    protected void onPostExecute(String result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);
        Toast.makeText(TweetActivity.this, "result " + result ,Toast.LENGTH_SHORT).show();

    }

}

请有人解释这个portio

1 个答案:

答案 0 :(得分:0)

您的代码中有一些错误......

首先:

Twitter twitter = new Twitter("screenname", "password");

您不能在Twitter上使用基于密码的登录 (为什么这个构造函数存在?它适用于其他服务,如Wordpress&amp; identi.ca,它支持Twitter API)

您需要使用基于oauth的登录。

如果您有最新版本的JTwitter,则可以使用一个名为AndroidTwitterLogin的类来处理登录。

其次:

twitter.setAPIRootUrl("https://twitter.com/#!/nindevworks");

您无需为Twitter设置API根网址(这也适用于Wordpress或identi.ca)

我希望有所帮助!