tinder-client
v4.1.4
Published
NodeJS client to access the Tinder API
Downloads
41
Maintainers
Readme
Tinder Client
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
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
- runeslint
commit-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
Network
tab - Look for a request to
/confirm
- Look at the response, specifically the
for.jsmods.require[3][0]
value, and search the text foraccess_token