org.springframework.social.facebook.api.UserOperations.java Source code

Java tutorial

Introduction

Here is the source code for org.springframework.social.facebook.api.UserOperations.java

Source

/*
 * Copyright 2015 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springframework.social.facebook.api;

import java.util.List;

import org.springframework.social.ApiException;
import org.springframework.social.MissingAuthorizationException;

public interface UserOperations {

    /**
     * Retrieves the profile for the authenticated user.
     * @return the user's profile information.
     * @throws ApiException if there is an error while communicating with Facebook.
     * @throws MissingAuthorizationException if FacebookTemplate was not created with an access token.
     */
    User getUserProfile();

    /**
     * Retrieves the profile for the specified user.
     * @param userId the Facebook user ID to retrieve profile data for.
     * @return the user's profile information.
     * @throws ApiException if there is an error while communicating with Facebook.
     */
    User getUserProfile(String userId);

    /**
     * Retrieves the user's profile image. Returns the image in Facebook's "normal" type.
     * @return an array of bytes containing the user's profile image.
     * @throws ApiException if there is an error while communicating with Facebook.
     * @throws MissingAuthorizationException if FacebookTemplate was not created with an access token.
     */
    byte[] getUserProfileImage();

    /**
     * Retrieves the user's profile image. Returns the image in Facebook's "normal" type.
     * @param userId the Facebook user ID.
     * @return an array of bytes containing the user's profile image.
     * @throws ApiException if there is an error while communicating with Facebook.
     */
    byte[] getUserProfileImage(String userId);

    /**
     * Retrieves the user's profile image.
     * @param imageType the image type (eg., small, normal, large. square)
     * @return an array of bytes containing the user's profile image.
     * @throws ApiException if there is an error while communicating with Facebook.
     * @throws MissingAuthorizationException if FacebookTemplate was not created with an access token.
     */
    byte[] getUserProfileImage(ImageType imageType);

    /**
     * Retrieves the user's profile image.
     * @param userId the Facebook user ID.
     * @param imageType the image type (eg., small, normal, large. square)
     * @return an array of bytes containing the user's profile image.
     * @throws ApiException if there is an error while communicating with Facebook.
     */
    byte[] getUserProfileImage(String userId, ImageType imageType);

    /**
     * Retrieves the user's profile image. When height and width are both used,
     * the image will be scaled as close to the dimensions as possible and then
     * cropped down.
     * @param width the desired image width
     * @param height the desired image height
     * @return an array of bytes containing the user's profile image.
     * @throws ApiException if there is an error while communicating with Facebook.
     */
    byte[] getUserProfileImage(Integer width, Integer height);

    /**
     * Retrieves the user's profile image. When height and width are both used,
     * the image will be scaled as close to the dimensions as possible and then
     * cropped down.
     * @param userId the Facebook user ID.
     * @param width the desired image width
     * @param height the desired image height
     * @return an array of bytes containing the user's profile image.
     * @throws ApiException if there is an error while communicating with Facebook.
     */
    byte[] getUserProfileImage(String userId, Integer width, Integer height);

    /**
     * Retrieves a list of permissions that the application has been granted for the authenticated user.
     * @return the permissions granted for the user.
     * @throws ApiException if there is an error while communicating with Facebook.
     * @throws MissingAuthorizationException if FacebookTemplate was not created with an access token.
     */
    List<Permission> getUserPermissions();

    /**
     * Fetches IDs that the user has on any applications associated with the calling application via Facebook's Business Mapping API.
     * @return a list of ID-to-application mapping that the user has on related applications.
     */
    List<UserIdForApp> getIdsForBusiness();

    /**
     * Fetches a list of places that the user has checked into or has been tagged at.
     * @return a list of place tags for the user.
     */
    List<PlaceTag> getTaggedPlaces();

    /**
     * Searches for users.
     * @param query the search query (e.g., "Michael Scott")
     * @return a list of {@link Reference}s, each representing a user who matched the given query.
     * @throws ApiException if there is an error while communicating with Facebook.
     * @throws MissingAuthorizationException if FacebookTemplate was not created with an access token.
     */
    PagedList<Reference> search(String query);

    static final String[] PROFILE_FIELDS = { "id", "about", "age_range", "birthday", "context", "cover", "currency",
            "devices", "education", "email", "favorite_athletes", "favorite_teams", "first_name", "gender",
            "hometown", "inspirational_people", "installed", "install_type", "is_verified", "languages",
            "last_name", "link", "locale", "location", "meeting_for", "middle_name", "name", "name_format",
            "political", "quotes", "payment_pricepoints", "relationship_status", "religion", "security_settings",
            "significant_other", "sports", "test_group", "timezone", "third_party_id", "updated_time", "verified",
            "video_upload_limits", "viewer_can_send_gift", "website", "work" };

}