List of usage examples for org.springframework.social.facebook.api FacebookError getSubcode
public Integer getSubcode()
From source file:pl.sgorecki.facebook.marketing.ads.impl.FacebookAdsErrorHandler.java
private FacebookError extractErrorFromResponse(ClientHttpResponse response) throws IOException { String json = readResponseJson(response); try {/*w w w. j a v a 2 s. c o m*/ ObjectMapper mapper = new ObjectMapper(new JsonFactory()); JsonNode jsonNode = mapper.readValue(json, JsonNode.class); if (jsonNode.has("error")) { JsonNode errorNode = jsonNode.get("error"); Integer code = errorNode.has("code") ? errorNode.get("code").intValue() : null; String type = errorNode.has("type") ? errorNode.get("type").asText() : null; String message = errorNode.has("message") ? errorNode.get("message").asText() : null; Integer subcode = errorNode.has("error_subcode") ? errorNode.get("error_subcode").intValue() : null; String userMessage = errorNode.has("error_user_msg") ? errorNode.get("error_user_msg").asText() : null; String userTitle = errorNode.has("error_user_title") ? errorNode.get("error_user_title").asText() : null; FacebookError error = new FacebookError(code, type, message, subcode, userMessage, userTitle); if (logger.isDebugEnabled()) { logger.debug("Facebook error: "); logger.debug(" CODE : " + error.getCode()); logger.debug(" TYPE : " + error.getType()); logger.debug(" SUBCODE : " + error.getSubcode()); logger.debug(" MESSAGE : " + error.getMessage()); logger.debug(" USER TITLE : " + error.getUserTitle()); logger.debug(" USER MESSAGE: " + error.getUserMessage()); } return error; } } catch (JsonParseException e) { return null; } return null; }
From source file:pl.sgorecki.facebook.marketing.ads.impl.FacebookAdsErrorHandler.java
/** * Examines the error data returned from Facebook and throws the most applicable exception. *///from w w w . jav a 2 s . c om void handleFacebookError(HttpStatus statusCode, FacebookError error) { if (error.getCode() != null) { int code = error.getCode(); if (code == UNKNOWN) { throw new UncategorizedApiException(FACEBOOK_PROVIDER_ID, error.getMessage(), null); } else if (code == SERVICE) { throw new ServerException(FACEBOOK_PROVIDER_ID, error.getMessage()); } else if (code == TOO_MANY_CALLS || code == USER_TOO_MANY_CALLS || code == EDIT_FEED_TOO_MANY_USER_CALLS || code == EDIT_FEED_TOO_MANY_USER_ACTION_CALLS || code == USER_APP_TOO_MANY_CALLS || code == AD_CREATION_LIMIT_EXCEEDED) { throw new RateLimitExceededException(FACEBOOK_PROVIDER_ID); } else if (code == PERMISSION_DENIED || isUserPermissionError(code)) { throw new InsufficientPermissionException(FACEBOOK_PROVIDER_ID); } else if (code == PARAM_SESSION_KEY || code == PARAM_SIGNATURE) { throw new InvalidAuthorizationException(FACEBOOK_PROVIDER_ID, error.getMessage()); } else if (code == PARAM_ACCESS_TOKEN && error.getSubcode() == null) { throw new InvalidAuthorizationException(FACEBOOK_PROVIDER_ID, error.getMessage()); } else if (code == PARAM_ACCESS_TOKEN && error.getSubcode() == 463) { throw new ExpiredAuthorizationException(FACEBOOK_PROVIDER_ID); } else if (code == PARAM_ACCESS_TOKEN) { throw new RevokedAuthorizationException(FACEBOOK_PROVIDER_ID, error.getMessage()); } else if (code == MESG_DUPLICATE) { throw new DuplicateStatusException(FACEBOOK_PROVIDER_ID, error.getMessage()); } else if (code == DATA_OBJECT_NOT_FOUND || code == PATH_UNKNOWN) { throw new ResourceNotFoundException(FACEBOOK_PROVIDER_ID, error.getMessage()); } else if (code == PARAM && error.getSubcode() != null && error.getSubcode() == 1487564) { throw new InvalidCampaignStatusException(FACEBOOK_PROVIDER_ID, error.getUserMessage()); } else if (code == PARAM && error.getSubcode() != null) { throw new InvalidParameterException(FACEBOOK_PROVIDER_ID, error.getUserMessage()); } else { throw new UncategorizedApiException(FACEBOOK_PROVIDER_ID, error.getMessage(), null); } } }
From source file:org.springframework.social.facebook.api.impl.FacebookErrorHandler.java
/** * Examines the error data returned from Facebook and throws the most applicable exception. * @param errorDetails a Map containing a "type" and a "message" corresponding to the Graph API's error response structure. *///from www . j a v a 2 s . c o m void handleFacebookError(HttpStatus statusCode, FacebookError error) { if (error != null && error.getCode() != null) { int code = error.getCode(); if (code == UNKNOWN) { throw new UncategorizedApiException(FACEBOOK_PROVIDER_ID, error.getMessage(), null); } else if (code == SERVICE) { throw new ServerException(FACEBOOK_PROVIDER_ID, error.getMessage()); } else if (code == TOO_MANY_CALLS || code == USER_TOO_MANY_CALLS || code == EDIT_FEED_TOO_MANY_USER_CALLS || code == EDIT_FEED_TOO_MANY_USER_ACTION_CALLS) { throw new RateLimitExceededException(FACEBOOK_PROVIDER_ID); } else if (code == PERMISSION_DENIED || isUserPermissionError(code)) { throw new InsufficientPermissionException(FACEBOOK_PROVIDER_ID); } else if (code == PARAM_SESSION_KEY || code == PARAM_SIGNATURE) { throw new InvalidAuthorizationException(FACEBOOK_PROVIDER_ID, error.getMessage()); } else if (code == PARAM_ACCESS_TOKEN && error.getSubcode() == null) { throw new InvalidAuthorizationException(FACEBOOK_PROVIDER_ID, error.getMessage()); } else if (code == PARAM_ACCESS_TOKEN && error.getSubcode() == 463) { throw new ExpiredAuthorizationException(FACEBOOK_PROVIDER_ID); } else if (code == PARAM_ACCESS_TOKEN) { throw new RevokedAuthorizationException(FACEBOOK_PROVIDER_ID, error.getMessage()); } else if (code == MESG_DUPLICATE) { throw new DuplicateStatusException(FACEBOOK_PROVIDER_ID, error.getMessage()); } else if (code == DATA_OBJECT_NOT_FOUND || code == PATH_UNKNOWN) { throw new ResourceNotFoundException(FACEBOOK_PROVIDER_ID, error.getMessage()); } else { throw new UncategorizedApiException(FACEBOOK_PROVIDER_ID, error.getMessage(), null); } } }