如何在我的应用程序中集成Twitter以进行登录和推文 - Android

时间:2015-04-16 10:12:47

标签: android twitter twitter4j

我正在构建一个我希望集成Twitter的应用程序。我已经浏览了几个文档和链接但仍然是我的起点。

我需要这个应用程序的两个功能:

  1. 通过Twitter帐户登录
  2. 通过登录帐户推文
  3. 我知道我们可以使用Twitter 4J library,但我不知道如何使用它。

    此外,我想知道如果用户推文成功,我是否可以获得任何响应ID。

    我已经创建了我的Twitter测试应用程序,并且我有消费者密钥,消费者密钥。请帮我理清一下。

4 个答案:

答案 0 :(得分:0)

根据您的要求使用ASNE。有关ASNE的详细信息,请阅读this tutorial

答案 1 :(得分:0)

Twitter还发布了Fabric,这是一套像Crashylitics,Admob这样的工具,还有一些工具包,其中包含一个用于在应用程序中集成twitter的SDK。

Fabric Twitter工具包https://dev.twitter.com/twitter-kit/android/twitter

安装说明https://dev.twitter.com/fabric/android/integrating

答案 2 :(得分:0)

我真的建议你看一下来自Twitter的这个example,演示如何在你的Android应用程序上使用Fabric套件,它会告诉你如何使用Twitter账号或数字登录,撰写推文,搜索,Crashlytics。 ..

例如,登录:

private void setUpTwitterButton() {
    twitterButton = (TwitterLoginButton) findViewById(R.id.twitter_button);
    twitterButton.setCallback(new Callback<TwitterSession>() {
        @Override
        public void success(Result<TwitterSession> result) {
            SessionRecorder.recordSessionActive("Login: twitter account active", result.data);
            startThemeChooser();
        }

        @Override
        public void failure(TwitterException exception) {
            Toast.makeText(getApplicationContext(),
                    getResources().getString(R.string.toast_twitter_signin_fail),
                    Toast.LENGTH_SHORT).show();
            Crashlytics.logException(exception);
        }
    });
}

希望这会有所帮助

答案 3 :(得分:0)

我假设您希望从Android应用程序发布状态到twitter。

回答您的疑问:

  1. 通过推文登录 - 我们将使用OAuth协议将twitter集成到Android应用程序
  2. 通过登录帐户发送推文 - 为此,我们将使用Twitter4J库并发布Android应用程序的推文
  3. 话虽如此, 我们无法直接发布到Twitter,因此我们必须使用Async Task。 您可以使用以下代码作为参考:

      new UseTweeter().execute(); // async task call
    
        public class UseTweeter extends AsyncTask<String,String,String>{
    
        @Override
        protected void onPreExecute() {
            pdProgressCircleSend=new ProgressDialog(getActivity());
            pdProgressCircleSend.setMessage(Constants.POSTING_TWEET);
            pdProgressCircleSend.show();
            super.onPreExecute();
        }
    
        @Override
        protected String doInBackground(String... params) {
            TweetThisMessage(); //Call for posting status
            return null;
        }
    
        @Override
        protected void onPostExecute(String s) {
            if(pdProgressCircleSend!=null && pdProgressCircleSend.isShowing()) {
                pdProgressCircleSend.dismiss();
            }
            Toast.makeText(getContext(), "Tweeted Successfully", Toast.LENGTH_SHORT).show();
        }
    }
        public void TweetThisMessage(){
        ConfigurationBuilder builder = new ConfigurationBuilder();
        builder.setOAuthAccessToken(accesstoken);
        builder.setOAuthAccessTokenSecret(accesstokensecret);
        builder.setOAuthConsumerKey(consumerkey);
        builder.setOAuthConsumerSecret(consumersecret);
        OAuthAuthorization auth = new OAuthAuthorization(builder.build());
        Twitter twitter = new TwitterFactory().getInstance(auth);
    
        StatusUpdate status=new StatusUpdate(sTweet);
        status.setMedia(f);
        try{
            Log.i("TAGTweet","sTweet in TweetThisMessage is sTweet"+ sTweet);
            twitter.updateStatus(sTweet);
        }catch (TwitterException e){
            e.printStackTrace();
            return;
        }