2014-03-27 89 views
0

這是我正在使用的代碼。使用Facebook帳號獲取Facebook圖像時獲取空位圖

String imageURL; 
    Bitmap bitmap = null; 

    imageURL = "http://graph.facebook.com/" + fbID + "/picture?type="; 
    try { 
     bitmap = BitmapFactory.decodeStream((InputStream) new URL(imageURL) 
       .getContent()); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

當我在瀏覽器中使用這個URL它顯示圖像,但是當試圖讓它在位圖中它給null。

我檢查了很多問題,但沒有幫助我。

回答

6

此代碼對我的作品與HTTPGET:

   HttpGet httpRequest = new HttpGet(URI.create(linkUrl)); 
       HttpClient httpclient = new DefaultHttpClient(); 
       HttpResponse response = (HttpResponse) httpclient.execute(httpRequest); 
       HttpEntity entity = response.getEntity(); 
       BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity); 
       bmap = BitmapFactory.decodeStream(bufHttpEntity.getContent()); 
       httpRequest.abort(); 
+0

非常感謝你的男人...:_) – Ankit

+0

爲我工作。謝謝 – Caqtus

1

此問題是由於以下事實造成的:Facebook僅將其圖形API網址用作重定向端點。如果你複製粘貼的Facebook個人資料圖片URL,如

http://graph.facebook.com/subinsebastien/picture

什麼真正發生的是,Facebook的重定向到實際圖片的網址。因此,當您嘗試使用圖形API網址打開輸入流時,您實際上並不會獲得位圖,而是您得到的重定向響應。就我而言,這是我被重定向到的地方。

https://scontent-b.xx.fbcdn.net/hprofile-prn1/l/t5.0-1/48771_100000333400619_475851971_q.jpg

因此,我寧願建議你使用一個實際HTTPGet首先得到位圖。

+0

是的,您R右。當我使用這個網址(靜態)它給出了結果。 https://scontent-b.xx.fbcdn.net/hprofile-prn1/l/t5.0-1/48771_100000333400619_475851971_q.jpg – Ankit

+0

你有任何建議,我將如何使用HTTPGet。 – Ankit