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 开发人员的最早阶段之一。为了完全控制发布过程,我们将主要使用纯 OAuth 发布而不是处理 Intent,因此我们可以完全控制。因此,作为用户,我们可以思考并得出结论:最典型的身份验证方式是弹出一个窗口,我们可以在其中使用我们的用户和密码进行识别,以便应用程序访问我们的帐户(虽然不是完整帐户,只是为了从应用程序发布!)并忘记其余的过程。对于 Android 新手来说,这可能是一个有点棘手的过程。当然,Twitter 最终会改变他们的 API 或注册方法,所以我们有时会发现我们的旧实现不再工作了

我们首先需要注册一个 Twitter 应用程序。为此,我们将访问 Twitter 的开发者网站。登录后,我们将添加一个新应用程序。没有需要记住的特殊设置,但是自从 Twitter 发布他们的 API 以来,回调 URL 的部分经常发生变化。目前,如果我们正在开发一个应用程序,我们只需要提供任何随机 URL。(本文更多内容

这里是一个示例 Android 项目,用于展示如何连接到 Twitter,将其令牌和用户名保存在共享首选项中,以便以后可以使用它来将状态发布到 Twitter。 如何从 Android 发布 Twitter 状态

其他人例如如何发送消息 suing 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 上发布消息的代码

 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 回答