#備忘録として書きます。
取得してくる画像サイズが50px×50pxで、
androidアプリで表示すると画像がとても荒くなって表示されてしまっていたので、
大きめの画像を取得してくる方法を探していました。
いろんなサイト回ってたけど下記みたいにURLにパラメータを付加してサイズを変更しているみたいな情報ばかり。
http://graph.facebook.com/hogehoge/picture?width=200&height=200
http://graph.facebook.com/hogehoge/picture?type=square
json形式で返ってくるURLと形式が違う。
jsonで渡されるURLのイメージは下記を参照してください。
p50x50でサイズが小さいとき
https://scontent.xx.fbcdn.net/hprofile-xal1/v/t1.0-1/p50x50/hogehoge・・・
p180x180でサイズが大きいとき
https://scontent.xx.fbcdn.net/hprofile-xal1/v/t1.0-1/p180x180/hogehoge・・・
※p50x50をp180x180に変更しただけでは、大きい画像は取得できませんのでご注意。
#解決策
parametersで取得してくるfieldsのpictureにtype(large)を指定してあげればOK!
イメージは下記を参照してください。また分かり難ところがあれば質問お願いします。
AccessToken accessToken = loginResult.getAccessToken();
GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,gender,picture.type(large)");
request.setParameters(parameters);
request.executeAsync();