/** * @see com.restfb.FacebookClient#fetchConnection(String, * Class, com.restfb.Parameter[]) */ @Override public <T> Connection<T> fetchConnection(String connection, Class<T> connectionType, Parameter... parameters) { verifyParameterPresence("connection", connection); verifyParameterPresence("connectionType", connectionType); return mapToConnection(makeRequest(connection, parameters), connectionType); }
/** * @see com.restfb.FacebookClient#fetchObject(String, * Class, com.restfb.Parameter[]) */ @Override public <T> T fetchObject(String object, Class<T> objectType, Parameter... parameters) { verifyParameterPresence("object", object); verifyParameterPresence("objectType", objectType); return jsonMapper.toJavaObject(makeRequest(object, parameters), objectType); }
/** * @see com.restfb.FacebookClient#deleteObject(String) */ @Override public boolean deleteObject(String object) { verifyParameterPresence("object", object); return "true".equals(makeRequest(object, false, true, true, null)); }
/** * Creates a Facebook Graph API client with the given {@code accessToken}, * {@code webRequestor}, and {@code jsonMapper}. * * @param accessToken A Facebook OAuth access token. * @param webRequestor The {@link WebRequestor} implementation to use for sending * requests to the API endpoint. * @param jsonMapper The {@link JsonMapper} implementation to use for mapping API * response JSON to Java objects. * @throws NullPointerException If {@code jsonMapper} or {@code webRequestor} is {@code null}. */ public DefaultFacebookClient(String accessToken, WebRequestor webRequestor, JsonMapper jsonMapper) { verifyParameterPresence("jsonMapper", jsonMapper); verifyParameterPresence("webRequestor", webRequestor); this.accessToken = trimToNull(accessToken); this.webRequestor = webRequestor; this.jsonMapper = jsonMapper; this.facebookGraphExceptionMapper = createFacebookGraphExceptionMapper(); illegalParamNames.addAll(Arrays .asList(new String[]{ACCESS_TOKEN_PARAM_NAME, METHOD_PARAM_NAME, FORMAT_PARAM_NAME})); }
/** * @see com.restfb.FacebookClient#publish(String, Class, * java.io.InputStream, com.restfb.Parameter[]) */ @Override public <T> T publish(String connection, Class<T> objectType, InputStream binaryAttachment, Parameter... parameters) { verifyParameterPresence("connection", connection); return jsonMapper.toJavaObject(makeRequest(connection, false, true, false, binaryAttachment, parameters), objectType); }
/** * @see com.restfb.FacebookClient#executeQuery(String, * Class, com.restfb.Parameter[]) */ @Override public <T> List<T> executeQuery(String query, Class<T> objectType, Parameter... parameters) { verifyParameterPresence("query", query); verifyParameterPresence("objectType", objectType); for (Parameter parameter : parameters) if (QUERY_PARAM_NAME.equals(parameter.name)) throw new IllegalArgumentException("You cannot specify the '" + QUERY_PARAM_NAME + "' URL parameter yourself - " + "RestFB will populate this for you with " + "the query you passed to this method."); return jsonMapper.toJavaList( makeRequest("fql.query", true, false, false, null, parametersWithAdditionalParameter(Parameter.with(QUERY_PARAM_NAME, query), parameters)), objectType); }
/** * @see com.restfb.FacebookClient#convertSessionKeysToAccessTokens(String, * String, String[]) */ @Override public List<AccessToken> convertSessionKeysToAccessTokens(String appId, String secretKey, String... sessionKeys) { verifyParameterPresence("appId", appId); verifyParameterPresence("secretKey", secretKey); if (sessionKeys == null || sessionKeys.length == 0) return emptyList(); String json = makeRequest("/oauth/exchange_sessions", false, true, false, null, Parameter.with("client_id", appId), Parameter.with("client_secret", secretKey), Parameter.with("sessions", join(sessionKeys))); return jsonMapper.toJavaList(json, AccessToken.class); }
@SuppressWarnings("unchecked") public <T> T fetchObjects(List<String> ids, Class<T> objectType, Parameter... parameters) { verifyParameterPresence("ids", ids); verifyParameterPresence("connectionType", objectType);
@SuppressWarnings("unchecked") public <T> T executeMultiquery(Map<String, String> queries, Class<T> objectType, Parameter... parameters) { verifyParameterPresence("objectType", objectType);