All Projects → jaebradley → tinder-client

jaebradley / tinder-client

Licence: MIT License
❤️ NodeJS Tinder Client

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to tinder-client

Tinify Nodejs
Node.js client for the Tinify API.
Stars: ✭ 299 (+498%)
Mutual labels:  npm-package, node-js
express-mvc-generator
Express' Model View Controller Application Generator.
Stars: ✭ 46 (-8%)
Mutual labels:  npm-package, node-js
josk
🏃🤖 Scheduler and manager for jobs and tasks in node.js on multi-server and clusters setup
Stars: ✭ 27 (-46%)
Mutual labels:  npm-package, node-js
Rando.js
The world's easiest, most powerful random function.
Stars: ✭ 659 (+1218%)
Mutual labels:  npm-package, node-js
Node Loadbalance
A collection of distilled load balancing engines
Stars: ✭ 79 (+58%)
Mutual labels:  npm-package, node-js
arcscord
A Discord library written in typescript
Stars: ✭ 18 (-64%)
Mutual labels:  npm-package, node-js
Forge Node App
🛠📦🎉 Generate Node.js boilerplate with optional libraries & tools
Stars: ✭ 90 (+80%)
Mutual labels:  npm-package, node-js
windows-network-drive
Do network drive stuff on Microsoft Window in node
Stars: ✭ 18 (-64%)
Mutual labels:  npm-package, node-js
react-full-stack-starter
🎈Full-stack React boilerplate using `create-react-app`, Babel, Node.js, and express
Stars: ✭ 22 (-56%)
Mutual labels:  node-js
UWO
Unity WebGL x WebSocket MMO demo
Stars: ✭ 49 (-2%)
Mutual labels:  node-js
fortnite-basic-api
Basic Fortnite API for stats with async/await, and basic communicator
Stars: ✭ 46 (-8%)
Mutual labels:  node-js
node-express-mongo-passport-jwt-typescript
A Node.js back end web application with REST API, user JWT authentication and MongoDB data storage using TypeScript
Stars: ✭ 51 (+2%)
Mutual labels:  node-js
secure-env
Env encryption tool that will help you prevent attacks from npm-malicious-packages.
Stars: ✭ 53 (+6%)
Mutual labels:  npm-package
Dynamic-Web-TWAIN
Dynamic Web TWAIN for package managers
Stars: ✭ 35 (-30%)
Mutual labels:  npm-package
CoffeeAndCode
Weekly Dev Challenges
Stars: ✭ 16 (-68%)
Mutual labels:  node-js
doctr-tfjs-demo
Javascript demo of docTR, powered by TensorFlowJS
Stars: ✭ 21 (-58%)
Mutual labels:  node-js
node-rest-api-scaffold
This project is an initial NodeJS Rest API scaffold for developers
Stars: ✭ 24 (-52%)
Mutual labels:  node-js
ewd-qoper8
Node.js Message Queue and Multi-Process Manager
Stars: ✭ 23 (-54%)
Mutual labels:  node-js
twgitbot
A node.js bot that checks a github repo changes and tweets it to your Twitter account
Stars: ✭ 10 (-80%)
Mutual labels:  node-js
minesweeper-bot
I'm a Discord bot that can generate a random Minesweeper game using spoiler tags, for anyone to play!
Stars: ✭ 27 (-46%)
Mutual labels:  node-js

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].