Android - 如何直接在Twitter上发布推文(没有隐含意图或其他应用程序)?

时间:2016-06-30 20:44:33

标签: android android-intent twitter

大家下午好。我正在学习本教程:

http://www.androidwarriors.com/2015/11/twitter-login-android-studio-example.html

具有此关联的GitHub项目:

https://github.com/androidwarriors/TwitterLoginUsingFabric

当我走到界限时,一切似乎都在起作用:

String msg = "@" + session.getUserName() + " logged in! (#" + session.getUserId() + ")";
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();

TweetComposer.Builder builder = new TweetComposer.Builder(MainActivity.this).text("test tweet 789");
builder.show();
getUserData();

我能够看到Toast确认登录成功,然后显然启动了隐含意图,手机询问我更喜欢使用哪个浏览器,然后打开浏览器,输入“test tweet 789”并发送一个按钮推文。

值得关注的是,我想直接从我的应用程序发送推文,而不是将浏览器作为单独的应用程序来实现。有没有办法做到这一点?看起来像一个简单的问题,它可能只是另一行代码或两行,但我找不到直接适用的例子,请指教。对不起,如果我在这里错过了一些简单的东西。

这里的记录是我的整个onCreate方法,主要是直接来自上面链接的教程。

///////////////////////////////////////////////////////////////////////////////////////////////
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
    Fabric.with(this, new Twitter(authConfig));
    setContentView(R.layout.activity_main);

    textView = (TextView) findViewById(R.id.tv_username);

    loginButton = (TwitterLoginButton) findViewById(R.id.twitter_login_button);
    loginButton.setCallback(new Callback<TwitterSession>() {
        @Override
        public void success(Result<TwitterSession> result) {
            // The TwitterSession is also available through:
            // Twitter.getInstance().core.getSessionManager().getActiveSession()

            Log.d("Twitter ", "Login sucessfull");
            session = result.data;

            String username = session.getUserName();
            userid = session.getUserId();

            textView.setText("Hi " + username);
            TwitterAuthToken authToken = session.getAuthToken();
            String token = authToken.token;
            String secret = authToken.secret;
            // TODO: Remove toast and use the TwitterSession's userID
            // with your app's user model
            String msg = "@" + session.getUserName() + " logged in! (#" + session.getUserId() + ")";
            Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();

            TweetComposer.Builder builder = new TweetComposer.Builder(MainActivity.this).text("test tweet 789");
            builder.show();
            getUserData();
        }

        @Override
        public void failure(TwitterException exception) {
            Log.d("TwitterKit", "Login with Twitter failure", exception);
        }
    });
}

1 个答案:

答案 0 :(得分:1)

默认发布推文似乎不是Fabric的SDK的一部分。您可能需要查看their REST API