Example usage for org.springframework.social.facebook.api FacebookError getCode

List of usage examples for org.springframework.social.facebook.api FacebookError getCode

Introduction

In this page you can find the example usage for org.springframework.social.facebook.api FacebookError getCode.

Prototype

public Integer getCode() 

Source Link

Usage

From source file:pl.sgorecki.facebook.marketing.ads.impl.FacebookAdsErrorHandler.java

/**
 * Examines the error data returned from Facebook and throws the most applicable exception.
 *//*w w w. j a va2s  .c  o m*/
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:pl.sgorecki.facebook.marketing.ads.impl.FacebookAdsErrorHandler.java

private FacebookError extractErrorFromResponse(ClientHttpResponse response) throws IOException {
    String json = readResponseJson(response);
    try {//from  w w w.ja  v a 2s .co  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: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.
 *//* www  .j a  v a2s. 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);
        }
    }

}