npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

republik-api

v1.4.0

Published

Unofficial RepubliK.gg API

Downloads

21

Readme

RepubliK API

NPM

Disclaimer: This TypeScript/Node.js project provides access to an unofficial RepubliK API, kind a implementation for informational and educational purposes only. RepubliK API could change at any moment but I will try my best to maintain and keep it up-to-date.

Quickstart

Installation

Using NPM

npm install republik-api

Using YARN

yarn add republik-api

Quick example of usage

import { RepubliKAPI } from "republik-api"

const republikgg = new RepubliKAPI({
  authToken: "ACCESS_TOKEN",
  userId: "USER_ID"
})

republikgg.authenticate()

// Get posts from an user
const getPostsOpt = {
  location: "",
  limit: 25,
  withOwnReactions: true,
  withReactionCounts: true
}
republikgg.getPosts("USER_ID", getPostsOpt)

// Get profile infor from an user
republikgg.getProfile("USER_ID")

Read more about authentication.

📝 Post

republikgg.Self.createPost("CAPTION", ["MEDIA_URL", "MEDIA_FILEPATH"]) // Maximum 3 media, createPost, deletePost
republikgg.Self.createConversation("CAPTION", "MEDIA_URL") // createConversation, deleteConversation

💖 Relationship

republikgg.Self.follow("USER_ID") // follow, unfollow
republikgg.Self.block("USER_ID") // block, unblock

👍 Reaction

Note: postId and activityId kind a same thing.

republikgg.Self.like("ACTIVITY_ID") // like, dislike
republikgg.Self.comment("ACTIVITY_ID", "TEXT") // comment, uncomment

⚙️ Update profile

republikgg.Self.updateProfile.name("DISPLAY NAME")
republikgg.Self.updateProfile.bio("BIO")
republikgg.Self.updateProfile.email("[email protected]")

// Photo
republikgg.Self.updateProfile.photo("FILE_PATH") // from local file
// or
republikgg.Self.updateProfile.photo("URL") // from url

🔃 Refreshing Token

republikgg.Self.updateToken()

🔒 Authentication

Auth options

const AuthOptions = {
  refreshToken?: string,
  authToken?: string,
  userId?: string
}

There are two ways to do authentication

const republikgg = new RepublikAPI(AuthOptions)
republikgg.authenticate()

// or

const republikgg = new RepublikAPI()
republikgg.authenticate(AuthOptions)

And there are two kind of authentication.

const republikgg = new RepublikAPI()
republikgg.authenticate({ refreshToken })

// or

const republikgg = new RepublikAPI()
republikgg.authenticate({ userId, authToken })

Authentication with refreshToken would be best since authToken only alive for an hour and required userId. For now, it's only tested using Google SSO authentication, not yet tried Facebook signin method.

Auth Token

Its property named authToken on constructing class. Access Token (Bearer) can be obtained via Network Tab on your browser. authToken will expired in 3600s (an hour).

Refresh Token

Used to refresh authToken. Can be found on localStorage. The key named XXXX.XXXX.XXXX.refreshToken. New token will be live for an hour. Refresh token will change while the session closed (logout) from the device.

✏️ Some changes

Changes:

  • Remove the Postman/Runtine User Agent
  • Allow use to user their own User Agent

This version updated because #4 Issue

Functions:

  • Self.post() to Self.createPost()
  • refreshAccessToken() to Self.updateToken() No longer return value, new token automatically set.
  • authenticate() Now needed after constructing class.

Feel free to open issue or opening pull request. A star (⭐) would be very amazing!

Legal

This source code is intended to facilitate access to certain online services but is not endorsed or supported by the platform provider(s). Please use this code responsibly and respect the terms of service of the platform(s) you interact with.