【问题标题】:Facebook profile picture request i.e. "http://graph.facebook.com/me/picture"Facebook 个人资料图片请求,即“http://graph.facebook.com/me/picture”
【发布时间】:2012-01-09 09:26:16
【问题描述】:

当我请求个人资料图片时,在这种情况下,我会在我的 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

非常感谢任何帮助,希望这可以帮助其他人。

谢谢,

【问题讨论】:

    标签: facebook request profile image handlers


    【解决方案1】:

    使用以下请求而不是您发出的请求

    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 窗体应用程序中的图片框。

    如果您需要更多帮助,请告诉我。

    【讨论】:

    • 这实际上很有帮助,现在我知道如何使用带有图片字段的 JSONObject 获取实际的重定向 URL。只是想让您知道,尽管我正在使用此代码来检索位图 bitmap = BitmapFactory.decodeStream((InputStream) new URL( "http://graph.facebook.com/"+facebookId+"/picture?type=medium").getContent());
    • 顺便说一句,我正在使用 AsyncTask 检索每个图像,非常感谢 Robin。
    【解决方案2】:

    您可以使用 ?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}
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 2017-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      • 2014-06-03
      相关资源
      最近更新 更多