从Facebook Graph API JSON响应保存图像。 [Java]

时间:2019-08-07 09:33:57

标签: java json image oauth-2.0 scribe

我正在编写springboot应用程序,并且正在使用ScribeJava库来管理OAuth2.0:

https://github.com/scribejava/scribejava/blob/master/scribejava-apis/src/test/java/com/github/scribejava/apis/examples/FacebookExample.java

我将此库打包到我的个人代码中,以进一步抽象请求和配置。它运行良好,我尝试了很多对Facebook Graph Api,Google Api等的请求,并且运行良好。

问题在于,现在我正试图从Facebook Graph Api获得用户个人资料图片作为响应,并且获取它没有错误,但是我无法对其进行管理或查看。

//a simple Request object to make a request Url
OAuthRequest request = facebookClient.initRequest("GET", profilePicUrl);

//Handling the response.
Response response = facebookClient.getResponse(request);

现在,如果我想查看包含哪些响应,则只需使用一些方法即可:


System.out.println("Status Code : " + response.getCode());
System.out.println("Headers : " + response.getHeaders());
System.out.println("Message : " + response.getMessage());
System.out.println("Body : " + response.getBody());

这是输出:

  Status Code : 200
  Headers : {
    null=HTTP/1.1 200 OK,
    Content-Disposition=attachment,
    x-fb-config-version-olb-prod=529,
    Vary=Accept-Encoding, 
    Content-Length=1694, 
    Content-Type=image/jpeg
}
  Message : OK

身体上有很多符号和ASCII字符。

所以最后的问题是:

response.getBody() // [String type]

我有图像的原始内容,我想将其保存为图像,而不必保存在文件中。我只希望能够像管理图像一样管理该图像。我尝试过:

 FileOutputStream file = new FileOutputStream(path);
 file.write(response.getBody().getBytes());

,但生成的文件不可加载或损坏。我想我缺少一些步骤。

感谢您的耐心等候。

编辑 我发现了问题,该库仅处理gzip文件或String。所以我不得不添加一些附加代码来处理二进制文件。

0 个答案:

没有答案