1

プロフィール写真のリクエストを行うと、この場合、HttpResponseHandler で何らかのエンコードされた文字列を受け取ります。以下のコードは、私のプロフィール写真のリクエストです。

private static AsyncHttpClient client = new AsyncHttpClient();

client.get("http://graph.facebook.com/1206433/picture",  fbPictureHandler);

以下のコードは、応答を取得するためのハンドラーです。応答を文字列として受け取りますが、この応答オブジェクトをどうすればよいかわかりません。バイト配列に変換して「file.jpg」に書き込もうとしましたが、うまくいきませんでした。私の主な質問は、この応答オブジェクトをどうするかということです。

private static AsyncHttpResponseHandler fbPictureHandler = new AsyncHttpResponseHandler ()        
{
@Override
public void onStart() {
Log.d(TAG,"started picture handler");
}
@Override
public void onSuccess(String response) {
        //Not sure what to do here, have been unable to do anything with this Byte   //array
    byte[] imageBackground = response.getBytes();

    }
    @Override
    public void onFailure(Throwable error) {
        Log.d(TAG, "unable to retrieve picture");
        error.printStackTrace();
    }
    @Override
    public void onFinish() {
        Log.d(TAG,"Finished picture handler");
    }
};

これは応答オブジェクトの PrintString です

11-29 19:42:12.640: D/Yatter Facebook(3551): ÿØÿà��JFIF������������ÿþ��;CREATOR: gd-jpeg     v1.0 (using IJG JPEG v62), quality = 95

Aどんな助けも大歓迎です。うまくいけば、これが他の人を助けることができます.

ありがとうございました、

4

2 に答える 2

2

発行しているリクエストの代わりに、次のリクエストを使用してください

http://graph.facebook.com/1206433?fields=picture

これにより、プロファイル画像への元のパスを含む JSON 文字列が次の形式で返されます。

{
   "picture": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/260615_1206433_140418666_q.jpg"
}

この文字列を解析して「画像」のパスを取得し、それをコードで使用して画像を取得します。


サンプルリクエストの例はこちら

注 : http://profile.ak.fbcdn.net/hprofile-ak-snc4/260615_1206433_140418666_q.jpgは、最初のステップで JSON 文字列を解析することによって取得されます。

WebRequest request = WebRequest.Create("http://profile.ak.fbcdn.net/hprofile-ak-snc4/260615_1206433_140418666_q.jpg");
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
pictureBox1.Image = Image.FromStream(stream);

これにより、Windows フォーム アプリケーションの画像ボックスに画像が読み込まれます。

さらに助けが必要な場合は、私に知らせてください。

于 2011-11-30T08:11:45.943 に答える
0

直接リンクを取得するには、 ?redirect=falseに従って「/picture」を使用できます

http://graph.facebook.com/+facebookid+/picture?redirect=false

応答には url 静的リンク (json 形式) が含まれます

{"data":{
    "url":"https:\/\/fbcdn-profile-a.akamaihd.net\/hprofile-ak-frc1\/t1.0-1\/c126.33.409.409\/s50x50\/551571_4079894629426_190963543_n.jpg","is_silhouette":false}
}
于 2014-06-15T17:06:37.370 に答える