Suppose you need to query Facebook Graph API. The responses to your HTTP requests have JSON format. A very convinient Java API for JSON Processing helps to parse and query the heterogeneous JSON responses.
For example, I try to get an email of the user whose access token was obtained after the user's login into my application. For this, I access url like:
https://graph.facebook.com/v2.11/me?access_token=EAAFzBKZBWT9QBAHzWcGGSy5GepjlS9S1YEPvN1p2jwaGxc0QZCaVoAZCmsZB8YaE1AkegbmObdBDY64DDD1t1kxezOgpEFKbbLKlyQyPcEiyUZCwSI3iJOhe9ioahZA9Ye6hvOybhzGeOODFdihEnPbuw5sso5CzPEZAQL1RkdM3cfKajOdKsPmMWOvNhrDtE0ZD&debug=all&fields=email&format=json&method=get&pretty=0
The reponse is a JSON with some hexadecimal digits encoding @ character:
{"email":"marian.caikovski\u0040mail.ru","id":"10215579219697013","__debug__":{}}
To easily execute an HTTP request, parse the response and get the decoded email property I use:
String readUserEmailFromGraphAPI(String token) throws IOException { try (JsonReader jsonReader = Json.createReader( new InputStreamReader( new URL("https://graph.facebook.com/v2.11/me?access_token=" + token + "&debug=all&fields=email&format=json&method=get&pretty=0") .openStream()))) { JsonObject obj = jsonReader.readObject(); return obj.getString("email"); } }
No comments:
Post a Comment