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

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

Introduction

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

Prototype

public Integer getSubcode() 

Source Link

Usage

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);
        }
    }

}