2016-06-30 5 views
1

Guten Tag alle zusammen. Ich verfolge dieses Tutorial:Android - Wie posten Sie einen Tweet direkt auf Twitter (ohne eine implizite Absicht oder eine andere Anwendung)?

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

das damit verbundene GitHub Projekt:

https://github.com/androidwarriors/TwitterLoginUsingFabric

Alles scheint zu funktionieren, wenn ich zu den Linien erhalten:

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(); 

Ich bin in der Lage zu sehen, den Toast Bestätigung erfolgreicher Anmeldung und dann anscheinend eine implizite Absicht gestartet wird, t Er fragt, welchen Browser ich am liebsten benutzen würde, öffnet dann den Browser mit bereits eingegebenem "test tweet 789" und einem Button, um den Tweet zu senden.

Das Problem ist, ich möchte den Tweet direkt aus meiner App senden, anstatt einen Browser als separate App dazu zu bringen. Gibt es eine Möglichkeit, dies zu tun? Scheint wie eine einfache Frage und es ist wahrscheinlich nur eine weitere Zeile Code oder zwei, aber ich konnte kein direkt anwendbares Beispiel finden, bitte beraten. Entschuldigung, wenn ich hier etwas leicht vermisse.

Für die Aufzeichnung hier ist meine gesamte onCreate-Methode, meist direkt aus dem oben verlinkten Tutorial.

/////////////////////////////////////////////////////////////////////////////////////////////// 
@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); 
     } 
    }); 
} 

Antwort

1

Das unbemerkte Senden von Tweets scheint nicht Teil von Fabric's SDK zu sein. Vielleicht möchten Sie sich their REST API ansehen.