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

tinder-client

v4.1.4

Published

NodeJS client to access the Tinder API

Downloads

41

Readme

Tinder Client

Tinder Client npm npm

Introduction

Tinder has an unofficial API that has been documented by this gist and fbessez/Tinder.

There is also an existing Node Client, tinderjs. This is a Promise-based equivalent.

Dependencies

tinder-client has two dependencies:

API

Creating a client

There are two ways to create a client

  • If you have access to a user's Facebook access token, then you can use the createClientFromFacebookAccessToken factory function
  • If you have access to a user's Facebook email & password, then you can use the createClientFromFacebookLogin factory function

The returned client object will have a variety of methods that will provide access to the Tinder API.

createClientFromFacebookAccessToken

import { createClientFromFacebookAccessToken } from 'tinder-client';

const client = await createClientFromFacebookLogin('some facebook access token');

createClientFromFacebookLogin

import { createClientFromFacebookLogin } from 'tinder-client';

const client = await createClientFromFacebookLogin({
  emailAddress: 'your facebook email address',
  password: 'your facebook password',
});

getProfile

const profile = await client.getProfile();

updateProfile

import { GENDERS, GENDER_SEARCH_OPTIONS } from 'tinder-client';

const userGender = GENDERS.female;
const searchPreferences = {
  maximumAge: 100,
  minimumAge: 99,
  genderPreference: GENDER_SEARCH_OPTIONS.both,
  maximumRangeInKilometers: 100,
};
const profile = await client.updateProfile({ userGender, searchPreferences })

getRecommendations

const recommendations = await client.getRecommendations();

getUser

const user = await client.getUser('someUserId');

getMetadata

Get metadata for authenticated user

const myMetadata = await client.getMetadata();

changeLocation

await client.changeLocation({ latitude: 'someLatitude', longitude: 'someLongitude' });

like

await client.like('someUserId');

pass

await client.pass('someUserId');

superLike

await client.superLike('someUserId');

getUpdates

await client.getUpdates();
await client.getUpdates('2019-02-05T00:00:00.004Z');

messageMatch

await client.messageMatch({ matchId: 'someMatch', message: 'someMessage' });

getMatch

await client.getMatch('someMatchId');

getMessage

await client.getMessage('someMessageId');

getCommonConnections

await client.getCommonConnections('someTinderUserId');

resetTemporaryLocation

await client.resetTemporaryLocation();

temporarilyChangeLocation

await client.temporarilyChangeLocation({ latitude: 'someLatitude', longitude: 'someLongitude' });

Local Development

After cloning the repository, use nvm / npm to install dependencies.

To run both all tests, execute npm run test.

To only run unit tests, execute npm run unit-test.

To only run integration tests, execute npm run integration-test.

In order to execute local integration tests successfully, you'll need to specify the following environment variables in the .env file

  • FACEBOOK_EMAIL_ADDRESS
  • FACEBOOK_PASSWORD
  • TINDER_USER_ID (Your Tinder user id)

To build the production bundle, execute npm run build.

Git Hooks

This project uses husky to maintain git hooks.

  • pre-commit - run eslint
  • commit-msg - run commit message linting
  • pre-push - run unit tests

Commit Linting

This project uses semantic-release and commitlint (specifically the Angular commit convention) to automatically enforce semantic versioning.

Retrieving Facebook User ID and Facebook Access Token

For local development, you might want to test the client out at on an ad-hoc basis or maybe even for integration testing.

In order to do so, you'll need to get your Facebook Access Token.

To retrieve a Facebook Access Token, you'll need to

  • Go to this URL
  • Open the Network tab
  • Look for a request to /confirm

confirm-request

  • Look at the response, specifically the for.jsmods.require[3][0] value, and search the text for access_token

confirm-request-response