2011-07-15 4 views
1

私はアンドロイドアプリケーションを持っています。ログインしているfacebookユーザーが、この写真と同様の方法ですべての彼の友達を検索します: http://i55.tinypic.com/wv9vzb.pngこれはiphoneから取られますが、これに)。アンドロイドアプリケーションのユーザーの友人を検索する

facebook-sdkを使用して私のアプリケーションにfacebookを統合しました。

誰かが私を正しい方向に向けることができたら、私は感謝しています。ありがとう!

UPDATE:

私はあなたのコードでURLをロードしようとした:

Bitmap bitmap=null; 
    Log.d("We are:","Loading Picture"); 
    imageURL = "http://graph.facebook.com/"+userID+"/picture?type=small"; 

    try{ 
     bitmap=BitmapFactory.decodeStream((InputStream)new URL(imageURL).getContent()); 
    }catch(Exception e){ 

     Log.d("And:","Loading Picture FAILED"); 
     e.printStackTrace(); 
} 
そしてlogcatは、次のようになります。私はURLを入力すると

java.net.SocketTimeoutException: The operation timed out 
    at org.apache.harmony.luni.platform.OSNetworkSystem.receiveStreamImpl(Native Method) 
    at org.apache.harmony.luni.platform.OSNetworkSystem.receiveStream(OSNetworkSystem.java:478) 
    at org.apache.harmony.luni.net.PlainSocketImpl.read(PlainSocketImpl.java:565) 
    at org.apache.harmony.luni.net.SocketInputStream.read(SocketInputStream.java:61) 
    at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.readln(HttpURLConnection.java:1178) 
    at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.readServerResponse(HttpURLConnection.java:1250) 
    at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.sendRequest(HttpURLConnection.java:1238) 
    at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.doRequestInternal(HttpURLConnection.java:1558) 
    at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.doRequest(HttpURLConnection.java:1551) 
    at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1052) 
    at java.net.URLConnection$DefaultContentHandler.getContent(URLConnection.java:1053) 
    at java.net.URLConnection.getContent(URLConnection.java:166) 
    at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnection.getContent(HttpsURLConnection.java:156) 
    at java.net.URL.getContent(URL.java:621) 
    at com.facebook.android.Example.getUserPic(Example.java:192) 
    at com.facebook.android.Example$2.onClick(Example.java:174) 
    at android.view.View.performClick(View.java:2364) 
    at android.view.View.onTouchEvent(View.java:4179) 
    at android.widget.TextView.onTouchEvent(TextView.java:6540) 
    at android.view.View.dispatchTouchEvent(View.java:3709) 
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 

私がいることを言わなければなりませんブラウザは正しいプロフィール画像を表示します。

私はhttp postをすることによってURLをロードすることも試み:

HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost=new HttpPost(imageURL); 

     try{ 

     HttpResponse response = httpclient.execute(httppost); 

     if(response!=null) 
     { 
     bitmap=BitmapFactory.decodeStream(response.getEntity().getContent()); 

      } 
     } 
     catch(ClientProtocolException e) 
     { 
      e.printStackTrace(); 
     } 
     catch(IOException e) 
     { 
      e.printStackTrace(); 
     } 

そしてlogcatは、次のようになります。

Uncaught handler: thread main exiting due to uncaught exception 
java.lang.IllegalArgumentException: Host name may not be null 
    at org.apache.http.HttpHost.<init>(HttpHost.java:83) 
    at org.apache.http.impl.client.AbstractHttpClient.determineTarget(AbstractHttpClient.java:497) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
    at com.facebook.android.Example.getUserPic(Example.java:203) 
    at com.facebook.android.Example$2.onClick(Example.java:174) 
    at android.view.View.performClick(View.java:2364) 
    at android.view.View.onTouchEvent(View.java:4179) 
    at android.widget.TextView.onTouchEvent(TextView.java:6540) 
    at android.view.View.dispatchTouchEvent(View.java:3709) 
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 
    at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 

何が問題になっています: - ?S

+0

を呼び出すことにより、画像表示に設定することができますビットマップを返します。ログにはエラーの原因は何か、私は以前に「インデックス7で予期された権限」を持っていなかった!あなたがプロジェクトを解凍してリンクを投稿することができれば、それをダウンロードして問題の内容を理解できるかどうかを確認します。 – Kenny

+0

私が試している例は、facebook-sdkのものです。私はそれをすべて圧縮しなければいけませんか、またはこれらのことを試したクラスだけですか?プロジェクトを実行しますか? – adrian

+0

http://dl.transfer.ro/simple-transfer_RO-16jul-7b53ea.zipこれを実行する場合は、最初にリクエストボタンを押して、そのリクエストのプロフィール写真の後に!ボタンありがとう! – adrian

答えて

3

あなたが必要になりますグラフapi(https://graph.facebook.com/me/friends?)にリクエストを送信してユーザーの友人を取得すると、JSONエンコードされた配列のすべてのデータが返されます。あなたは、すべての友人のリストを作成し、URLからダウンロードした画像で一覧を作成する方法を示しwhichs例えば、プロジェクトのIDとURL "http://graph.facebook.com/"+userID+"/picture?type=small"

を使用して写真をダウンロードすることができ

は見てみましょうこの質問への私の答えでhere.

これはあなたが始めるのを助けることを願っています!ここで


iは、ユーザーの写真をダウンロードするために使用するコードです、それはあなたが、私は見ているから、かなりよく分からないimageView.setImageBitmap(bitmap);

/** 
* Function loads the users facebook profile pic 
* 
* @param userID 
*/ 
public Bitmap getUserPic(String userID) { 
    String imageURL; 
    Bitmap bitmap = null; 
    Log.d(TAG, "Loading Picture"); 
    imageURL = "http://graph.facebook.com/"+userID+"/picture?type=small"; 
    try { 
     bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageURL).getContent()); 
    } catch (Exception e) { 
     Log.d(TAG, "Loading Picture FAILED"); 
     e.printStackTrace(); 
    } 
    return bitmap; 
} 
+0

[OK]を、友人の名前とIDを返すことに成功しましたが、写真のある部分をちょっとガイドしてください。私がそのリクエストを "... /写真.."に返すと返されるのは何ですか? – adrian

+0

私はユーザーの写真をダウンロードするために使用するコードを追加しました。これが役に立ちますようお願いいたします。 – Kenny

+0

URLに問題があります。しかし、コードで私は何が間違っているのか分からないので、私は醜いエラーを取得します。私はlogcatをここに投稿し、それを見てみることができますか?ありがとう – adrian

関連する問題