twitter-snowflake

Convert a Javascript Date to a Twitter Snowflake ID or vice versa

Usage no npm install needed!

<script type="module">
  import twitterSnowflake from 'https://cdn.skypack.dev/twitter-snowflake';
</script>

README

This package enables simple conversion of Twitter Snowflake ID's (or tweet ID's) into Javascript Date objects or vice versa.

This is useful when using Twitter API endpoints like Standard/Recent Search: https://developer.twitter.com/en/docs/twitter-api/v1/tweets/search/api-reference/get-search-tweets

One of the optional parameters in the API endpoint above is the since_id which is a Snowflake/tweet id that Twitter generates using the time of creation. This means you can generate a Snowflake ID with any date/time and use it with the API endpoint.

For example if you want to get tweets from the past 24 hours you would:

  1. Generate a Javascript Date object where the day is yesterday
  2. Convert the Javascript Date object to a Snowflake ID using this package
  3. Use the ID in the Search API endpoint above in the since_id parameter.

Using this process avoids having to loop/paging through responses from the Twitter API until getting to the desired date (and having to keep track of the current date in the loop).

This package can also be used to get a Date from a Snowflake ID but use of this feature will be rare because responses from the Twitter API usually include the "created_at" parameter for returned tweets.

Snowflake IDs are 64-bit integers where the first 42 bits are a millisecond timestamp.

Installation:

npm install twitter-snowflake

Getting Started:

import {snowflakeToDate, dateToSnowflake} from 'twitter-snowflake';

// creates a new javascript date object where the day is yesterday
let now = new Date();
let yesterday = new Date();
yesterday.setDate(now.getDate()-1);

// converts the javascript date to a tweet id which can be used with the API
let since_id = dateToSnowflake(yesterday)