2014-10-28 8 views
7

W moim app muszę podzielić się link do strony promocyjnej poprzez Facebook i Twitter, w facebooku mamy coś "share dialog" lub po wiązce jakJak udostępnić łącze za pomocą Twittera w Androidzie?

Request request = new Request(Session.getActiveSession(), "me/feed", bundle, HttpMethod.POST, 
     new Request.Callback(){ 
       @Override 
       public void onCompleted(Response response) { 
        ... 
       } 
      }); 

ale nie ma twitter SDK dla Androida (trully używam twitter4j) i nie ma możliwości opublikowania pakietu

, więc jak dodać do Twittera za pomocą Twittera?

Odpowiedz

1

Można to zrobić za pośrednictwem intencji tak:

Intent sendIntent = new Intent(); 
sendIntent.setAction(Intent.ACTION_SEND); 
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); 
sendIntent.setType("text/plain"); 
startActivity(sendIntent); 

ten otworzy listę aplikacji zainstalowanych że może odpowiedzieć na intencję, takich jak Gmail, Facebook i ... Twitter.

można znaleźć więcej informacji tutaj: http://developer.android.com/training/sharing/send.html

Ponadto, jeśli chcesz wywołać bezpośrednio Twitter i nie chcą wybierać, rzucić okiem na this answer

2

Jeśli wysyłasz tekst z linkiem jak " Oto nasz link: http://stackoverflow.com "- twitter zrozumie go i uzyska informacje z linku i pokaże go - jak rozumiem, musisz zobaczyć swój rozpoznany link w kanale Twitter. Aby zamieścić odnośnik można dokonać intencji jak @Adrian Sicaru lub tworzyć własne przy użyciu niestandardowego okna dialogowego asynctask z twitter4j jak wspomina:

@Override 
protected Bundle doInBackground(Bundle... params) { 
    Bundle args = params[0]; 
    Bundle result = new Bundle(); 

    String paramMessage = args.getString(MESSAGE); 
    String paramLink = args.getString(LINK); 

    ConfigurationBuilder builder = new ConfigurationBuilder(); 
    builder.setOAuthConsumerKey("your ConsumerKey"); 
    builder.setOAuthConsumerSecret("your ConsumerSecret"); 

    String accessToken = "your Token"; 
    String accessTokenSecret = "your Secret"; 

    TwitterFactory factory = new TwitterFactory(builder.build()); 
    mTwitter = factory.getInstance(new AccessToken(accessToken, accessTokenSecret)); 
    try { 
     StatusUpdate status = new StatusUpdate(paramMessage); 

     if (paramLink != null) { 
      status = new StatusUpdate(paramMessage + " " + paramLink); 
     } 
     mTwitter.updateStatus(status); 
    } catch (TwitterException e) { 
     result.putString(RESULT_ERROR, e.getMessage()); 
    } 
    return result; 
} 
1

Jak @TribblerWare odpowiedział po prostu napisz odnośnik w tweet i twitter rozpoznał.

Nawiasem mówiąc, można użyć ASNE library na to - tylko autoryzacji użytkownika i używać requestPostLink z wiązki jako parametr

Bundle postParams = new Bundle(); 
postParams.putString(SocialNetwork.BUNDLE_LINK, link); 
socialNetwork.requestPostLink(postParams, message, postingComplete); 

bardziej szczegółowy widać tutorial