1

私は週末からこれにいて、行き詰まりに陥っています。私はプログラミングにかなり慣れていないので、「同様の質問」の下のすべてのリンクを読んだので、頭がおかしいのではないかと疑っていますが、それは当てはまらないか、もっと混乱します。

私は Twitter4j API を使用しており、コードサンプル番号から作業しました。OAuth サポートに関する twitter4j Web サイト ( http://twitter4j.org/en/code-examples.html ) の 7 。

スキル構築プロジェクトとして、セレブのパブリック アカウントからタイムラインをダウンロードする Android セレブ ファン アプリを作成したいと考えています。目標は、すべてのツイートのタイムライン ダウンロードを実行することです。ユーザーがこのアプリで Twitter にログインしたり、ツイートを投稿したりしたくありません。アプリはバックグラウンドでタイムラインをダウンロードし、おそらくリスト ビューでツイートを表示します。

私のコードは次の行を実行していません。何かが起こるのを待っているだけのようです。RequestToken requestToken = twitter.getOAuthRequestToken();

マニフェストにインターネット アクセス許可があります。この時点で、私は非常に混乱しており、アプリを正しく登録したかどうかさえわかりません。4 つのキー (コンシューマー、コンシューマー シークレット、アクセス、およびアクセス シークレット) があります。

設定

- ウェブサイト: 何かを作った

-アプリケーションの種類: 読み取り専用

-コールバック URL: 空白のままにします

-「Twitter でサインイン」にオプトインしていません。

OAuth ツール

-リクエストタイプ: GET

- リクエスト URI: https://api.twitter.com/1/ (間違っている可能性があります)

これは私のコードです:

public class TwitterActivity extends Activity
{
    Button mButtonTweets;
    String JSONString = null;
    TextView JSONContent;

class GetTwitterTimeline extends AsyncTask<Void, String, String>
{
    @Override
    protected String doInBackground(Void... params) 
    {   
        try
        {
            ConfigurationBuilder cb = new ConfigurationBuilder();
            cb.setDebugEnabled(true)
            .setOAuthConsumerKey("")
            .setOAuthConsumerSecret("")
            .setOAuthAccessToken("")
            .setOAuthAccessTokenSecret("");
            TwitterFactory tf = new TwitterFactory(cb.build());
            Twitter twitter = tf.getInstance();

            try
            {
                RequestToken requestToken = twitter.getOAuthRequestToken();

                AccessToken accessToken = null;

                while (accessToken == null)
                {
                    onProgressUpdate(requestToken.getAuthenticationURL());

                    try
                    {
                        accessToken = twitter.getOAuthAccessToken();
                    }//try
                    catch(TwitterException te)
                    {
                        if (te.getStatusCode() == 401)
                        {
                            onProgressUpdate("Unable to get the access token");
                        }//if
                        else
                        {
                            te.printStackTrace();
                        }//else
                    }//catch
                }//while
                onProgressUpdate("Got Access Token");
                onProgressUpdate("Access Token: " + accessToken.getToken());
                onProgressUpdate("Access Token Secret: " + accessToken.getTokenSecret());
            }//try
            catch (IllegalStateException ie)
            {
                if(!twitter.getAuthorization().isEnabled())
                {
                    onProgressUpdate("OAuth consumer key/secret is not set.");
                }//if
            }//catch
        }//try
        catch (TwitterException te)
        {
            te.printStackTrace();
            onProgressUpdate("Failed to get timeline");
        }//catch

        String JSONString = "JSON content will go here";

        return JSONString;
    }//doInBackground

    protected void onProgressUpdate(String logEntry)
    {
        Log.d("twitter4j", logEntry);
    }

    @Override
    protected void onPostExecute(String jsonString)
    {
        JSONString = jsonString;
    }

}//end inner class

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

    new GetTwitterTimeline().execute();

    JSONContent = (TextView) findViewById(R.id.textview_tweets);

    mButtonTweets = (Button) findViewById(R.id.button_tweets);
    mButtonTweets.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            JSONContent.setText(JSONString);
        }
    });

}
}
4

1 に答える 1

1

Twitter API が更新されました。そのため、リクエスト URI: https://api.twitter.com/1/は機能しません。

また、あなたがアプリを作ろうとしている方法はうまくいきません。何らかの認証が必要です。この API の変更後、アプリの 1 つもダンプしました。:(

次のリンクを読んでください。

https://dev.twitter.com/docs/api/1.1/overview

于 2013-07-31T04:09:07.823 に答える