Class UserService

Handles interacting with resources related to user account

Hierarchy

Constructors

Properties

authProxyUrl?: URL

The URL to the proxy server to use only for authentication.

userId?: string

The id of the authenticated user (if any).

Methods

  • Get the details of a user.

    Parameters

    • id: string

      The username/id of the target user.

    Returns Promise<undefined | User>

    The details of the given user. If no user matches the given id, returns undefined.

    Example

    Fetching the details using username

    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);
    });

    Example

    Fetching the details using id

    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);
    })
    .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.

    Throws

    Code 108 if given user id is invalid.

    Example

    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

    • Optional cursor: string

      The cursor to the batch of feed items to fetch.

    Returns Promise<CursoredData<Tweet>>

    • The followed feed of the logged-in user.

    Example

    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);
    });

    Remarks

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

  • Get the list followers of a user.

    Parameters

    • id: string

      The id of the target user.

    • Optional count: number

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

    • Optional cursor: string

      The cursor to the batch of followers to fetch.

    Returns Promise<CursoredData<User>>

    The list of users following the target user.

    Example

    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

    • id: string

      The id of the target user.

    • Optional count: number

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

    • Optional cursor: string

      The cursor to the batch of following to fetch.

    Returns Promise<CursoredData<User>>

    The list of users followed by the target user.

    Example

    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.

    • Optional count: number

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

    • Optional cursor: string

      The cursor to the batch of followers to fetch.

    Returns Promise<CursoredData<Tweet>>

    The list of highlighted tweets of the target user.

    Example

    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

    • Optional count: number

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

    • Optional cursor: string

      The cursor to the batch of likes to fetch.

    Returns Promise<CursoredData<Tweet>>

    The list of tweets liked by the target user.

    Example

    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

    • id: string

      The id of the target user.

    • Optional count: number

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

    • Optional cursor: string

      The cursor to the batch of media to fetch

    Returns Promise<CursoredData<Tweet>>

    The media timeline of the target user.

    Example

    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, any, unknown>

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

    Example

    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(1000)) {
    console.log(notification.message);
    }
    }
    catch (err) {
    console.log(err);
    }
    }

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

    Parameters

    • Optional cursor: string

      The cursor to the batch of feed items to fetch.

    Returns Promise<CursoredData<Tweet>>

    • The recommended feed of the logged-in user.

    Example

    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);
    });

    Remarks

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

  • Get the reply timeline of a user.

    Parameters

    • id: string

      The id of the target user.

    • Optional count: number

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

    • Optional cursor: string

      The cursor to the batch of replies to fetch.

    Returns Promise<CursoredData<Tweet>>

    The reply timeline of the target user.

    Example

    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);
    });

    Remarks

    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

      The type of the returned response data.

    Parameters

    Returns Promise<T>

    The raw data response received.

    Example

    Fetching the raw details of a user with username 'user1'

    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.

    • Optional count: number

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

    • Optional cursor: string

      The cursor to the batch of subscriptions to fetch.

    Returns Promise<CursoredData<User>>

    The list of subscriptions by the target user.

    Example

    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.

    • Optional count: number

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

    • Optional cursor: string

      The cursor to the batch of timeline items to fetch.

    Returns Promise<CursoredData<Tweet>>

    The timeline of the target user.

    Example

    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);
    });

    Remarks

    • 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.

    Throws

    Code 34 if given user id is invalid.

    Example

    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);
    });

Generated using TypeDoc