tinder-client
tinder-client copied to clipboard
❤️ NodeJS Tinder Client
Tinder Client
- Tinder Client
- Introduction
- Dependencies
- API
- Creating a client
createClientFromFacebookAccessTokencreateClientFromFacebookLogin
getProfileupdateProfilegetRecommendationsgetUsergetMetadatachangeLocationlikepasssuperLikegetUpdatesmessageMatchgetMatchgetMessagegetCommonConnectionsresetTemporaryLocationtemporarilyChangeLocation
- Creating a client
- Local Development
- Git Hooks
- Commit Linting
- Retrieving Facebook User ID and Facebook Access Token
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:
axios(^0.18.0)tinder-access-token-generator(^2.0.0) - this is used to generate Tinder API access tokens
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
createClientFromFacebookAccessTokenfactory function - If you have access to a user's Facebook email & password, then you can use the
createClientFromFacebookLoginfactory 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_ADDRESSFACEBOOK_PASSWORDTINDER_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- runeslintcommit-msg- run commit message lintingpre-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
Networktab - Look for a request to
/confirm

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