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

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

Introduction

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

Prototype

public String getUserMessage() 

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 {//from   www . j  av  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.
 *//*  w w w.ja  v  a2  s.  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);
        }
    }

}