0

アプリ内から Twitter のステータスを更新するのに役立つコードを Android で記述しようとしていますが、問題が発生しています。以下はコード スニペットです。

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();

    }

}

そして、誰かこの部分を説明してください

4

1 に答える 1

0

あなたのコードにはいくつかのバグがあります...

まず:

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

Twitter でパスワードベースのログインを使用することはできません。
(なぜこのコンストラクターが存在するのですか? Twitter API をサポートする Wordpress や identi.ca などの他のサービス用です)

oauth ベースのログインを使用する必要があります。

JTwitterの最新バージョンを持っている場合はAndroidTwitterLogin、ログインを処理するために使用できるというクラスがあります。

第二に:

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

Twitter の API ルート URL を設定する必要はありません (これは、Wordpress や identi.ca でも同様です)。

それが役立つことを願っています!

于 2012-07-06T11:04:09.013 に答える