4

ツイッターアプリを開発しました。編集ボックスにテキストを入力した後、ボタンをクリックしてからTwitterに投稿します。

誰でもコードを投稿できます。

試しましたが、setStatus()メソッドでエラーが発生します。

これが私のコードです。助けてください。

public void onCreate(Bundle savedInstanceState) {
        System.setProperty("http.keepAlive", "false");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_oauth);

        //check for saved log in details..
        checkForSavedLogin();

        //set consumer and provider on teh Application service
        getConsumerProvider();

        //Define login button and listener
        buttonLogin = (Button)findViewById(R.id.ButtonLogin);
        buttonLogin.setOnClickListener(new OnClickListener() {  
            public void onClick(View v) {
                askOAuth();
            }
        });

        postText = (EditText)findViewById(R.id.editText1);
        postbtn = (Button)findViewById(R.id.button1);

        postbtn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                postTwitter();
            }
        });

    }

    protected void postTwitter() {
        String message = postText.getText().toString();
        System.out.println("Post Twitter.."+message);

        Thread t = new Thread() {
            public void run() {

                 twitter = new Twitter();

                 try
                 {
                 //Status to post in Twitter
                 **twitter.setStatus(postText.getText().toString());**
                 Toast.makeText(AuthActivity.this, "Article Posted to Twitter Successfully!!", Toast.LENGTH_SHORT).show();
                 }
                  catch(Exception e)
                 {
                 Toast.makeText(AuthActivity.this, "Network Host not responding",Toast.LENGTH_SHORT).show();
                 }
            }

        };
        t.start();
        }  
4

2 に答える 2

9

Android から Twitter への投稿は、Android 開発者の初期段階の 1 つです。投稿プロセスを完全に制御し続けるために、インテントを扱うのではなく、主に純粋な OAuth 投稿を優先することで、完全に制御できるようにします。したがって、ユーザーとして考えて結論を出すことができます。認証する最も一般的な方法は、ユーザーとパスワードで識別できるウィンドウをポップアップして、アプリケーションにアカウントへのアクセスを許可することです (ただし、完全なアカウントではなく、アプリケーションから投稿してください!)、残りのプロセスは忘れてください。これは、Android の初心者にとっては少しトリッキーなプロセスかもしれません。そしてもちろん、Twitter は最終的に API や登録方法を変更するため、古い実装が機能しなくなることがあります。

まず、Twitter アプリを登録する必要があります。そのために、Twitter の開発者 Web サイトにアクセスします。ログイン後、新しいアプリケーションを追加します。覚えておくべき特別な設定はありませんが、Twitter が API をリリースして以来、コールバック URL の一部は頻繁に変更されています。現時点では、1 つのアプリケーションを開発している場合、任意のランダムな URL を指定するだけで済みます (詳細はこの記事を参照) 。

これは、Twitter に接続する方法を示すサンプル Android プロジェクトの 1 つです。そのトークンとユーザー名を共有設定に保存して、後でステータスを Twitter に投稿するために使用できるようにします。 AndroidからTwitterステータスを投稿する方法

他の例では、androd API を使用してメッセージを送信する方法があります。ここにあなたの助けのためのリンクのいくつかがあります;

http://www.android10.org/index.php/articleslibraries/291-twitter-integration-in-your-android-application

Twitter で Android アプリケーションを構築する

http://kenai.com/projects/twitterapime/pages/Home

これも忘れずに。http://abhinavasblog.blogspot.com/2010/09/using-twitter-with-oauth-on-andorid.html

于 2012-06-01T05:42:30.417 に答える
3

まず、Twitterでアプリを作成する必要があります

これはTwitterにメッセージを投稿するためのコードです

 ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
            configurationBuilder.setOAuthConsumerKey(context.getResources().getString(R.string.twitter_consumer_key));
            configurationBuilder.setOAuthConsumerSecret(context.getResources().getString(R.string.twitter_consumer_secret));
            configurationBuilder.setOAuthAccessToken(LoginActivity.getAccessToken((context)));
            configurationBuilder.setOAuthAccessTokenSecret(LoginActivity.getAccessTokenSecret(context));
            Configuration configuration = configurationBuilder.build();
            final Twitter twitter = new TwitterFactory(configuration).getInstance();

            new Thread(new Runnable() {

                    private double x;

                    @Override
                    public void run() {
                            boolean success = true;
                            try {
                                    x = Math.random();
                                    twitter.updateStatus(message +" "+x);
                            } catch (TwitterException e) {
                                    e.printStackTrace();
                                    success = false;
                            }

                            final boolean finalSuccess = success;

                            callingActivity.runOnUiThread(new Runnable() {
                                    @Override
                                    public void run() {
                                            postResponse.onFinsihed(finalSuccess);
                                    }
                            });

                    }
            }).start(); 

詳細については、このチュートリアルを確認してください。

于 2013-12-17T11:13:02.393 に答える