Class UserService

Handles interacting with resources related to user account

Hierarchy (View Summary)

Constructors

Properties

config: RettiwtConfig

The config object.

Methods

  • Get the list affiliates of a user.

    Parameters

    • Optionalid: string

      The ID of the target user. If no id is provided, the logged-in user's id is used.

    • Optionalcount: number

      The number of affiliates to fetch, must be <= 100.

    • Optionalcursor: string

      The cursor to the batch of affiliates to fetch.

    Returns Promise<CursoredData<User>>

    The list of users affiliated to the target user.

    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the first 100 affiliates of the User with id '1234567890'
    rettiwt.user.affiliates('1234567890')
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });
  • Get the list of bookmarks of the logged in user.

    Parameters

    • Optionalcount: number

      The number of bookmakrs to fetch, must be <= 100.

    • Optionalcursor: string

      The cursor to the batch of bookmarks to fetch.

    Returns Promise<CursoredData<Tweet>>

    The list of tweets bookmarked by the target user.

    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the most recent 100 liked Tweets of the logged in User
    rettiwt.user.bookmarks()
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });
  • Get the details of a user.

    Type Parameters

    • T extends undefined | string | string[]

    Parameters

    • id: T

      The username/ID/IDs of the target user/users. If no ID is provided, the logged-in user's ID is used.

    Returns Promise<T extends undefined | string ? undefined | User : User[]>

    The details of the given user.

    If more than one ID is provided, returns a list.

    If no user matches the given id, returns undefined.

    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the details of the User with username 'user1'
    rettiwt.user.details('user1')
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });
    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the details of the User with id '1234567890'
    rettiwt.user.details('1234567890')
    .then(res => {
    console.log(res); # 'res' is a single tweet
    })
    .catch(err => {
    console.log(err);
    });
    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the details of the users with IDs '123', '456', '789'
    rettiwt.user.details(['123', '456', '789'])
    .then(res => {
    console.log(res); # 'res' is an array of users
    })
    .catch(err => {
    console.log(err);
    });
  • Follow a user.

    Parameters

    • id: string

      The ID the user to be followed.

    Returns Promise<boolean>

    Whether following was successful or not.

    Code 108 if given user id is invalid.

    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Following the User with id '1234567890'
    rettiwt.user.follow('1234567890')
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });
  • Get the followed feed of the logged in user.

    Parameters

    • Optionalcursor: string

      The cursor to the batch of feed items to fetch.

    Returns Promise<CursoredData<Tweet>>

    • The followed feed of the logged-in user.
    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the first 35 followed feed items of the logged-in user
    rettiwt.user.followed()
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });

    Always returns 35 feed items, with no way to customize the count.

  • Get the list followers of a user.

    Parameters

    • Optionalid: string

      The ID of the target user. If no ID is provided, the logged-in user's ID is used.

    • Optionalcount: number

      The number of followers to fetch, must be <= 100.

    • Optionalcursor: string

      The cursor to the batch of followers to fetch.

    Returns Promise<CursoredData<User>>

    The list of users following the target user.

    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the first 100 followers of the User with id '1234567890'
    rettiwt.user.followers('1234567890')
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });
  • Get the list of users who are followed by a user.

    Parameters

    • Optionalid: string

      The ID of the target user. If no ID is provided, the logged-in user's ID is used.

    • Optionalcount: number

      The number of following to fetch, must be <= 100.

    • Optionalcursor: string

      The cursor to the batch of following to fetch.

    Returns Promise<CursoredData<User>>

    The list of users followed by the target user.

    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the first 100 following of the User with id '1234567890'
    rettiwt.user.following('1234567890')
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });
  • Get the highlighted tweets of a user.

    Parameters

    • id: string

      The ID of the target user. If no ID is provided, the logged-in user's ID is used.

    • Optionalcount: number

      The number of followers to fetch, must be <= 100.

    • Optionalcursor: string

      The cursor to the batch of followers to fetch.

    Returns Promise<CursoredData<Tweet>>

    The list of highlighted tweets of the target user.

    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the top 100 highlights of the User with id '1234567890'
    rettiwt.user.highlights('1234567890')
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });
  • Get the list of tweets liked by the logged in user.

    Parameters

    • Optionalcount: number

      The number of likes to fetch, must be <= 100.

    • Optionalcursor: string

      The cursor to the batch of likes to fetch.

    Returns Promise<CursoredData<Tweet>>

    The list of tweets liked by the target user.

    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the most recent 100 liked Tweets of the logged in User
    rettiwt.user.likes()
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });
  • Get the media timeline of a user.

    Parameters

    • Optionalid: string

      The ID of the target user. If no ID is provided, the logged-in user's ID is used.

    • Optionalcount: number

      The number of media to fetch, must be <= 100.

    • Optionalcursor: string

      The cursor to the batch of media to fetch

    Returns Promise<CursoredData<Tweet>>

    The media timeline of the target user.

    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the first 100 timeline media tweets of the User with id '1234567890'
    rettiwt.user.timeline('1234567890')
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });
  • Stream notifications of the logged in user in pseudo real-time.

    Parameters

    • pollingInterval: number = 60000

      The interval in milliseconds to poll for new tweets. Default interval is 60000 ms.

    Returns AsyncGenerator<Notification>

    An async generator that yields new notifications as they are received.

    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Creating a function that streams all new notifications
    async function streamNotifications() {
    try {
    // Awaiting for the notifications returned by the AsyncGenerator returned by the method
    for await (const notification of rettiwt.user.notifications(5000)) {
    console.log(notification.message);
    }
    }
    catch (err) {
    console.log(err);
    }
    }

    // Calling the function
    streamNotifications();
  • Get the recommended feed of the logged in user.

    Parameters

    • Optionalcursor: string

      The cursor to the batch of feed items to fetch.

    Returns Promise<CursoredData<Tweet>>

    • The recommended feed of the logged-in user.
    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the first 35 recommended feed items of the logged-in user
    rettiwt.user.recommended()
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });

    Always returns 35 feed items, with no way to customize the count.

  • Get the reply timeline of a user.

    Parameters

    • Optionalid: string

      The ID of the target user. If no ID is provided, the logged-in user's ID is used.

    • Optionalcount: number

      The number of replies to fetch, must be <= 20.

    • Optionalcursor: string

      The cursor to the batch of replies to fetch.

    Returns Promise<CursoredData<Tweet>>

    The reply timeline of the target user.

    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the first 100 timeline replies of the User with id '1234567890'
    rettiwt.user.replies('1234567890')
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });

    If the target user has a pinned tweet, the returned reply timeline has one item extra and this is always the pinned tweet.

  • Makes an HTTP request according to the given parameters.

    Type Parameters

    • T = unknown

      The type of the returned response data.

    Parameters

    Returns Promise<T>

    The raw data response received.

    import { FetcherService, EResourceType } from 'rettiwt-api';

    // Creating a new FetcherService instance using the given 'API_KEY'
    const fetcher = new FetcherService({ apiKey: API_KEY });

    // Fetching the details of the User with username 'user1'
    fetcher.request(EResourceType.USER_DETAILS_BY_USERNAME, { id: 'user1' })
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });
  • Get the list of subscriptions of a user.

    Parameters

    • id: string

      The ID of the target user. If no ID is provided, the logged-in user's ID is used.

    • Optionalcount: number

      The number of subscriptions to fetch, must be <= 100.

    • Optionalcursor: string

      The cursor to the batch of subscriptions to fetch.

    Returns Promise<CursoredData<User>>

    The list of subscriptions by the target user.

    Currently not working.

    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the first 100 subscriptions of the User with id '1234567890'
    rettiwt.user.subscriptions('1234567890')
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });
  • Get the tweet timeline of a user.

    Parameters

    • id: string

      The ID of the target user. If no ID is provided, the logged-in user's ID is used.

    • Optionalcount: number

      The number of timeline items to fetch, must be <= 20.

    • Optionalcursor: string

      The cursor to the batch of timeline items to fetch.

    Returns Promise<CursoredData<Tweet>>

    The timeline of the target user.

    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Fetching the first 20 timeline tweets of the User with id '1234567890'
    rettiwt.user.timeline('1234567890')
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });
    • If the target user has a pinned tweet, the returned timeline has one item extra and this is always the pinned tweet.
    • If timeline is fetched without authenticating, then the most popular tweets of the target user are returned instead.
  • Unfollow a user.

    Parameters

    • id: string

      The ID the user to be unfollowed.

    Returns Promise<boolean>

    Whether unfollowing was successful or not.

    import { Rettiwt } from 'rettiwt-api';

    // Creating a new Rettiwt instance using the given 'API_KEY'
    const rettiwt = new Rettiwt({ apiKey: API_KEY });

    // Unfollowing the User with id '12345678'
    rettiwt.user.unfollow('12345678')
    .then(res => {
    console.log(res);
    })
    .catch(err => {
    console.log(err);
    });