2011-02-04 211 views

回答

9

這實際上取決於您希望交互如何工作。您可以:

  1. 利用自己API(由庫幫助,如twitter4j,由海科魯普的建議),或
  2. 找到一個方法來與Twitter的應用程序集成,雖然沒有公佈協議的這我所知道的。這也不是一個好主意,因爲許多人使用其他應用程序,如Twidroyd,TweetDeck等,但它肯定會很酷,或者
  3. 如果你不希望用戶經常這樣做,你可以使用簡單的意圖打開http://twitter.com/?status=<what-to-tweet>

方法3可以在這裏很容易描述:

Intent i = new Intent(Intent.ACTION_VIEW); 
i.setData(Uri.parse("http://twitter.com/?status=" + Uri.encode(message))); 
startActivity(i); 

也可以組合使用2和3。你可以嘗試一些已知的應用程序(官方Twitter,TweetDeck的,...),如果所有的它們失敗(因爲它們不存在或者因爲它們已經被更新並且破壞了協議),所以你打開瀏覽器。

另請注意,如果應用程序處理正確的意圖,方法3可能實際啓動應用程序而不是瀏覽器(或者至少讓用戶在兩者之間進行選擇)。

值得一提的另一件事是,你很可能無法與任何Twitter應用程序集成。我在這裏所說的純粹是假想的,我不知道這些應用程序是否支持這種集成。你應該諮詢每個應用程序,看看他們是否暴露了你可以使用的一些意圖。如果他們不這樣做,你仍然可以進行一些修改,然後你可能會發現它們,但那樣做不可靠,因爲它們很可能會在幾次更新之後崩潰。

+2

更新到2點 - 在Android當前的Twitter客戶端至少實現了一些自定義URL方案。我知道它支持`twitter:// post?message = my%20message`和`twitter:// user?screen_name = chomp`。 (有關更多iOS`twitter://`計劃網址,請參閱http://handleopenurl.com/scheme/twitter) – ohhorob 2011-12-02 00:47:04

1

您可以使用twitter4j庫與Twitter交談。由於Twitter已經轉換到oAuth,初始認證並不是微不足道的。

基本上你需要註冊你的應用程序與Twitter(去你的個人資料,然後到開發者頁面註冊你的應用程序 - 你將獲得消費者令牌+祕密)。然後按照this example通過Twitter進行身份驗證。

你可以看看Zwitscher(0.65版,oAuth的代碼沒有在0.65之後更新爲nw內部更改),這是一個開源的Twitter客戶端,用於更大的示例。

1

你可能會看看我的一個例子,就是如何在android上使用twitter來登錄。

它使用twitter4j,並稍作修改,你可以讓它發佈推文呢!

找到它here

UPDATE:有專門針對這個問題一個問題:twitter,update status

0

我用twitter4j和OAuth的路標爲了創建Facebook像OAuth授權(的WebView對話框)。結帳這個post

0

你可以做到這一點沒有Twitter4j,從而避免執行的OAuth流的大規模頭痛。

String tweetText = "We be tweetin!"; 
String url = "twitter://post?message="; 

try { 
    Intent i = new Intent(Intent.ACTION_VIEW); 
    i.setData(Uri.parse(url + Uri.encode(text))); 
    startActivity(i); 
} catch (android.content.ActivityNotFoundException e) { 
    Toast.makeText(this, "Can't send tweet!", 2).show(); 
} 

其他支持twitter://網址列here

如果用戶在其設備上安裝了Twitter應用程序,它會直接將其打開到共享視圖。取消或分享後,它會直接返回到您的應用程序。超級簡單。類似於iOS如何處理共享(與Facebook和Twitter集成)。

這不處理用戶使用其他應用程序作爲其主要Twitter客戶端的情況。

相關問題