Android - 如何直接将推文发布到 Twitter(没有隐式 Intent 或其他应用程序)?

标签 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 确认成功登录,然后显然启动了一个隐式 Intent ,手机询问我更喜欢使用哪个浏览器,然后打开该浏览器,其中已经输入了“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);
        }
    });
}

最佳答案

静默发布推文似乎不是 Fabric SDK 的一部分。你可能想看看 their REST API .

关于Android - 如何直接将推文发布到 Twitter(没有隐式 Intent 或其他应用程序)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38132922/

相关文章:

android - Kotlin View 变量在 Activity onCreate 方法中意外为空

android - 接收连续的 SEND Intent 会使应用程序回到前面,但不会更新 Intent

android - 如何使用 twitter4j 获取所有 Twitter 关注者的列表?

iphone - 使用 ObjectiveC/iPhone 中的 TwitPic API

android - layout_gravity 在 LinearLayout 中不起作用

android - parseInt 崩溃的安卓应用程序

java - 多个 Intent 过滤器到多个 Activity

android - 在一个 Activity 中的 fragment 之间导航

html - Twitter 和 Facebook 分享按钮错位

php - org.json.JSONException : Value <br of type java. lang.String 无法转换为 JSONObject