2014-11-21 41 views
3

我已成功設置twitter4j,現在可以發佈文本更新,並將本地媒體從設備上傳到Twitter。但我真正需要做的是共享來自網絡的遠程圖像 - 例如,http://example.com/image.pngAndroid的twitter4j - 如何分享遠程圖像?

當我執行此代碼... StatusUpdate statusUpdate = new StatusUpdate("Hello Twitter"); String imageUrl = "http://example.com/image.png"; File file = new File(imageUrl); statusUpdate.setMedia(file); twitter4j.Status status = twitter.updateStatus(statusUpdate);

...它看起來Twitter4J這類嘗試把URL作爲局部的,因爲它似乎把/在它前面,然後拋出一個異常說... /http://example.com/image.png: open failed: ENOENT (No such file or directory)

如何解決?謝謝。

回答

6

我發現有一個允許另一個setMedia()方法輸入流作爲它的一個參數。這個輸入流可以鏈接到遠程圖像,像這樣...

StatusUpdate statusUpdate = new StatusUpdate("Hello Twitter"); 
String imageUrl = "http://example.com/image.png"; 
URL url = new URL(imageUrl); 
URLConnection urlConnection = url.openConnection(); 
InputStream in = new BufferedInputStream(urlConnection.getInputStream()); 
statusUpdate.setMedia("image.png", in); 
twitter4j.Status status = twitter.updateStatus(statusUpdate); 
//might be a good idea to close the inputstream in a finally block 
0

我也有同樣的問題,我找到了解決方法是將圖像下載到您的手機,然後用下面的代碼張貼在Twitter上:

StatusUpdate status = new StatusUpdate(String status); 
File file = new File(imageFilePath); 
status.setMedia(file); 
mTwitter.updateStatus(status); 
+0

謝謝,但我不認爲這是一個很好的解決方案。我已經制定出正確的解決方案。我會很快發佈它作爲答案... – 2014-11-21 13:58:22

+0

這將是好的,我也想知道一個更好的方式來做到這一點:) – 2014-11-21 14:02:44

+0

看到我的答案,下面。作品一種享受! – 2014-11-21 15:19:14