❤️ NodeJS Tinder Client
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.
tinder-client
has two dependencies:
axios
(^0.18.0
)tinder-access-token-generator
(^2.0.0
) - this is used to generate Tinder API access tokensThere are two ways to create a client
createClientFromFacebookAccessToken
factory functioncreateClientFromFacebookLogin
factory functionThe 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' });
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
.
This project uses husky
to maintain git hooks.
pre-commit
- run eslint
commit-msg
- run commit message lintingpre-push
- run unit testsThis project uses semantic-release
and commitlint
(specifically the Angular commit convention) to automatically enforce semantic versioning.
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
Network
tab/confirm
for.jsmods.require[3][0]
value, and search the text for access_token