All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.agorava.twitter.TwitterFriendService Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2013 Agorava
 *
 * 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
 *
 *   http://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.agorava.twitter;

import org.agorava.twitter.model.CursoredList;
import org.agorava.twitter.model.TwitterProfile;

/**
 * Interface defining the operations for working with a user's friends and followers.
 *
 * @author Craig Walls
 * @author Antoine Sabot-Durand
 */
public interface TwitterFriendService {

    /**
     * Retrieves a list of up to 5000 users that the authenticated user follows. Note that this method make multiple calls to
     * Twitter's REST API (one call to get a list of the friend IDs and one call for every 100 friends). If all you need is the
     * friend IDs, consider calling getFriendIds() instead. Or if you need only a subset of the user's friends, call
     * UserOperations.getUsers() passing in the list of friend IDs you need.
     *
     * @return a list of TwitterProfiles
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    CursoredList getFriends();

    /**
     * Retrieves a list of up to 5000 users that the authenticated user follows. Note that this method make multiple calls to
     * Twitter's REST API (one call to get a list of the friend IDs and one call for every 100 friends). If all you need is the
     * friend IDs, consider calling getFriendIds() instead. Or if you need only a subset of the user's friends, call
     * UserOperations.getUsers() passing in the list of friend IDs you need.
     *
     * @param cursor the cursor used to fetch the friend IDs
     * @return a list of TwitterProfiles
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    CursoredList getFriendsInCursor(long cursor);

    /**
     * Retrieves a list of up to 5000 users that the given user follows. Note that this method make multiple calls to Twitter's
     * REST API (one call to get a list of the friend IDs and one call for every 100 friends). If all you need is the friend
     * IDs, consider calling getFriendIds() instead. Or if you need only a subset of the user's friends, call
     * UserOperations.getUsers() passing in the list of friend IDs you need.
     *
     * @param userId The user's Twitter ID
     * @return a list of TwitterProfiles
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFriends(long userId);

    /**
     * Retrieves a list of up to 5000 users that the given user follows. Note that this method make multiple calls to Twitter's
     * REST API (one call to get a list of the friend IDs and one call for every 100 friends). If all you need is the friend
     * IDs, consider calling getFriendIds() instead. Or if you need only a subset of the user's friends, call
     * UserOperations.getUsers() passing in the list of friend IDs you need.
     *
     * @param userId The user's Twitter ID
     * @param cursor the cursor used to fetch the friend IDs
     * @return a list of TwitterProfiles
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFriendsInCursor(long userId, long cursor);

    /**
     * Retrieves a list of up to 5000 users that the given user follows. Note that this method make multiple calls to Twitter's
     * REST API (one call to get a list of the friend IDs and one call for every 100 friends). If all you need is the friend
     * IDs, consider calling getFriendIds() instead. Or if you need only a subset of the user's friends, call
     * UserOperations.getUsers() passing in the list of friend IDs you need.
     *
     * @param screenName The user's Twitter screen name
     * @return a list of TwitterProfiles
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFriends(String screenName);

    /**
     * Retrieves a list of up to 5000 users that the given user follows. Note that this method make multiple calls to Twitter's
     * REST API (one call to get a list of the friend IDs and one call for every 100 friends). If all you need is the friend
     * IDs, consider calling getFriendIds() instead. Or if you need only a subset of the user's friends, call
     * UserOperations.getUsers() passing in the list of friend IDs you need.
     *
     * @param screenName The user's Twitter screen name
     * @param cursor     the cursor used to fetch the friend IDs
     * @return a list of TwitterProfiles
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFriendsInCursor(String screenName, long cursor);

    /**
     * Retrieves a list of up to 5000 IDs for the Twitter users that the authenticated user follows. Call
     * getFriendIdsForCursor() with a cursor value to get the next/previous page of entries.
     *
     * @return a cursored list of user IDs
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    CursoredList getFriendIds();

    /**
     * Retrieves a list of up to 5000 IDs for the Twitter users that the authenticated user follows.
     *
     * @param cursor The cursor value to fetch a specific page of entries. Use -1 for the first page of entries.
     * @return a list of user IDs
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    CursoredList getFriendIdsInCursor(long cursor);

    /**
     * Retrieves a list of up to 5000 IDs for the Twitter users that the given user follows.
     *
     * @param userId the user's Twitter ID
     * @return a list of user IDs
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFriendIds(long userId);

    /**
     * Retrieves a list of up to 5000 IDs for the Twitter users that the given user follows.
     *
     * @param userId the user's Twitter ID
     * @param cursor the cursor value to fetch a specific page of entries. Use -1 for the first page of entries.
     * @return a list of user IDs
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFriendIdsInCursor(long userId, long cursor);

    /**
     * Retrieves a list of up to 5000 IDs for the Twitter users that the given user follows.
     *
     * @param screenName the user's Twitter screen name
     * @return a list of user IDs
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFriendIds(String screenName);

    /**
     * Retrieves a list of up to 5000 IDs for the Twitter users that the given user follows.
     *
     * @param screenName the user's Twitter screen name
     * @param cursor     the cursor value to fetch a specific page of entries. Use -1 for the first page of entries.
     * @return a list of user IDs
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFriendIdsInCursor(String screenName, long cursor);

    /**
     * Retrieves a list of up to 5000 users that the authenticated user is being followed by Note that this method make multiple
     * calls to Twitter's REST API (one call to get a list of the follower IDs and one call for every 100 followers). If all you
     * need is the follower IDs, consider calling getFollowerIds() instead. Or if you need only a subset of the user's
     * followers, call UserOperations.getUsers() passing in the list of follower IDs you need.
     *
     * @return a list of TwitterProfiles
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    CursoredList getFollowers();

    /**
     * Retrieves a list of up to 5000 users that the authenticated user is being followed by Note that this method make multiple
     * calls to Twitter's REST API (one call to get a list of the follower IDs and one call for every 100 followers). If all you
     * need is the follower IDs, consider calling getFollowerIds() instead. Or if you need only a subset of the user's
     * followers, call UserOperations.getUsers() passing in the list of follower IDs you need.
     *
     * @param cursor the cursor used to fetch the follower IDs
     * @return a list of TwitterProfiles
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    CursoredList getFollowersInCursor(long cursor);

    /**
     * Retrieves a list of up to 5000 users that the given user is being followed by Note that this method make multiple calls
     * to Twitter's REST API (one call to get a list of the follower IDs and one call for every 100 followers). If all you need
     * is the follower IDs, consider calling getFollowerIds() instead. Or if you need only a subset of the user's followers,
     * call UserOperations.getUsers() passing in the list of follower IDs you need.
     *
     * @param userId The user's Twitter ID
     * @return a list of TwitterProfiles
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFollowers(long userId);

    /**
     * Retrieves a list of up to 5000 users that the given user is being followed by Note that this method make multiple calls
     * to Twitter's REST API (one call to get a list of the follower IDs and one call for every 100 followers). If all you need
     * is the follower IDs, consider calling getFollowerIds() instead. Or if you need only a subset of the user's followers,
     * call UserOperations.getUsers() passing in the list of follower IDs you need.
     *
     * @param userId The user's Twitter ID
     * @param cursor the cursor used to fetch the follower IDs
     * @return a list of TwitterProfiles
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFollowersInCursor(long userId, long cursor);

    /**
     * Retrieves a list of up to 5000 users that the given user is being followed by Note that this method make multiple calls
     * to Twitter's REST API (one call to get a list of the follower IDs and one call for every 100 followers). If all you need
     * is the follower IDs, consider calling getFollowerIds() instead. Or if you need only a subset of the user's followers,
     * call UserOperations.getUsers() passing in the list of follower IDs you need.
     *
     * @param screenName The user's Twitter screen name
     * @return a list of TwitterProfiles
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFollowers(String screenName);

    /**
     * Retrieves a list of up to 5000 users that the given user is being followed by Note that this method make multiple calls
     * to Twitter's REST API (one call to get a list of the follower IDs and one call for every 100 followers). If all you need
     * is the follower IDs, consider calling getFollowerIds() instead. Or if you need only a subset of the user's followers,
     * call UserOperations.getUsers() passing in the list of follower IDs you need.
     *
     * @param screenName The user's Twitter screen name
     * @param cursor     the cursor used to fetch the follower IDs
     * @return a list of TwitterProfiles
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFollowersInCursor(String screenName, long cursor);

    /**
     * Retrieves a list of up to 5000 IDs for the Twitter users that follow the authenticated user.
     *
     * @return a list of user IDs
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    CursoredList getFollowerIds();

    /**
     * Retrieves a list of up to 5000 IDs for the Twitter users that follow the authenticated user.
     *
     * @param cursor the cursor value to fetch a specific page of entries. Use -1 for the first page of entries.
     * @return a list of user IDs
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    CursoredList getFollowerIdsInCursor(long cursor);

    /**
     * Retrieves a list of up to 5000IDs for the Twitter users that follow the given user.
     *
     * @param userId the user's Twitter ID
     * @return a list of user IDs
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFollowerIds(long userId);

    /**
     * Retrieves a list of up to 5000IDs for the Twitter users that follow the given user.
     *
     * @param userId the user's Twitter ID
     * @param cursor the cursor value to fetch a specific page of entries. Use -1 for the first page of entries.
     * @return a list of user IDs
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFollowerIdsInCursor(long userId, long cursor);

    /**
     * Retrieves a list of up to 5000 IDs for the Twitter users that follow the given user.
     *
     * @param screenName the user's Twitter screen name
     * @return a list of user IDs
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFollowerIds(String screenName);

    /**
     * Retrieves a list of up to 5000 IDs for the Twitter users that follow the given user.
     *
     * @param screenName the user's Twitter screen name
     * @param cursor     the cursor value to fetch a specific page of entries. Use -1 for the first page of entries.
     * @return a list of user IDs
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    CursoredList getFollowerIdsInCursor(String screenName, long cursor);

    /**
     * Allows the authenticated user to follow (create a friendship) with another user.
     *
     * @param userId The Twitter ID of the user to follow
     * @return the name of the followed user if successful
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    String follow(long userId);

    /**
     * Allows the authenticated user to follow (create a friendship) with another user.
     *
     * @param screenName The screen name of the user to follow
     * @return the name of the followed user if successful
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    String follow(String screenName);

    /**
     * Allows the authenticated use to unfollow (destroy a friendship) with another user
     *
     * @param userId the Twitter ID of the user to unfollow
     * @return the name of the unfolloed user if successful
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    String unfollow(long userId);

    /**
     * Allows the authenticated use to unfollow (destroy a friendship) with another user
     *
     * @param screenName the screen name of the user to unfollow
     * @return the name of the unfolloed user if successful
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    String unfollow(String screenName);

    /**
     * Enable mobile device notifications from Twitter for the specified user.
     *
     * @param userId the Twitter ID of the user to receive notifications for.
     * @return the TwitterProfile for the user
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    TwitterProfile enableNotifications(long userId);

    /**
     * Enable mobile device notifications from Twitter for the specified user.
     *
     * @param screenName the Twitter screen name of the user to receive notifications for.
     * @return the TwitterProfile for the user
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    TwitterProfile enableNotifications(String screenName);

    /**
     * Disable mobile device notifications from Twitter for the specified user.
     *
     * @param userId the Twitter ID of the user to stop notifications for.
     * @return the TwitterProfile for the user
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    TwitterProfile disableNotifications(long userId);

    /**
     * Disable mobile device notifications from Twitter for the specified user.
     *
     * @param screenName the Twitter screen name of the user to stop notifications for.
     * @return the TwitterProfile for the user
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    TwitterProfile disableNotifications(String screenName);

    /**
     * Checks for a friendship between two users. Returns true if userA follows userB.
     *
     * @param userA the screen name of userA
     * @param userB the screen name of userB
     * @throws ApiException if there is an error while communicating with Twitter.
     */
    boolean friendshipExists(String userA, String userB);

    /**
     * Returns an array of numeric IDs for every user who has a pending request to follow the authenticating user.
     *
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    CursoredList getIncomingFriendships();

    /**
     * Returns an array of numeric IDs for every user who has a pending request to follow the authenticating user.
     *
     * @param cursor the cursor of the page to retrieve.
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    CursoredList getIncomingFriendships(long cursor);

    /**
     * Returns an array of numeric IDs for every protected user for whom the authenticating user has a pending follow request.
     *
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    CursoredList getOutgoingFriendships();

    /**
     * Returns an array of numeric IDs for every protected user for whom the authenticating user has a pending follow request.
     *
     * @param cursor the cursor of the page to retrieve.
     * @throws ApiException                  if there is an error while communicating with Twitter.
     * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials.
     */
    CursoredList getOutgoingFriendships(long cursor);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy