tinder v1.19.0
tinderjs
Programmatic access to the Tinder API
Contribution
tinderjs is a project that has a lot of potential if the power of the open-source community is harnessed. Come join us on Slack and view the priorities list to see how you can contribute, it is well appreciated!
Installation
$ npm install tinderIntroduction
tinderjs is a simple node.js wrapper around the Tinder API. Below is a simple example which gets a list of nearby profiles and prints them out:
var tinder = require('tinder');
var client = new tinder.TinderClient();
client.authorize(
<fb user token>,
<fb user id>,
function() {
client.getRecommendations(10, function(error, data){
console.log(data.results);
});
});Supported APIs
.authorize(fb token, fb id, callback)
Authorizes the TinderClient. You must call this before any other method.
fb tokenis a facebook user access token. You would acquire this by having your user log in using your applicationfb idis the id of the facebook usercallbackis called when the request completes
.isAuthorized()
Returns bool if TinderClient is authorized or not.
.getAuthToken()
Returns xAuthToken from authenticated user. Will be good if you want to save/cache the info.
.getDefaults()
Returns information from tinder about your client, where you can find your user data and also globals (e.g: recs_size)
that allows you to interact where api timeouts and limits.
.userId
Once authorized, this property will be set the current account's Tinder user id.
.getRecommendations(limit, callback)
Gets a list of nearby users.
limitis how many results to limit the search tocallbackis called when the request completes
.sendMessage(match id, message, callback)
Sends a message to a user.
match idis the match idmessageis the message to send.callbackis called when the request completes
.like(user id, callback)
Likes (swipes right) on a user.
user idis the user's id. This is obtained e.g viagetRecommendationscallbackis called when the request completes
.superLike(user id, callback)
Superlikes a user.
user idis the user's id. This is obtained e.g viagetRecommendationscallbackis called when the request completes
.pass(user id, callback)
Passes (swipes left) on a user.
user idis the user's id. This is obtained e.g viagetRecommendationscallbackis called when the request completes
.unmatch(match id, callback)
Unmatch with a user.
match idis the match idcallbackis called when the request completes
.getUpdates(callback)
Gets a list of new updates. This will be things like new messages, users who liked you, etc.
callbackis called when the request completes
.getHistory(callback)
Gets the entire history for the current account (all matches, messages, blocks, etc.)
NOTE: Old messages seem to not be returned after a certain threshold. Not yet sure what exactly that timeout is. The official client seems to get this update once when the app is installed then cache the results and only rely on the incremental updates
callbackis called when the request completes
.updatePosition(longitude, latitude, callback)
Updates the geographical position for the current account
longitudeis the longitude of the new positionlatitudeis the latitude of the new positioncallbackis called when the request completes
.getAccount(callback)
Gets the current account info
callbackis called when the request completes
.updatePreferences(discovery, min age, max age, gender, distance, callback)
Updates the preferences for the current account
discoveryis the true/false that tells tinder whether or not to show your cardmin ageis the minimum age of incoming recommendationsmax ageis the maximum age of incoming recommendationsgenderis the gender of incoming recommendations (0 = Male, 1 = Female, -1 = Both)distanceis the maximum distance in miles of incoming recommendationscallbackis called when the request completes
.uploadPicture(file, callback)
Upload a new picture to the current account. Caution: the picture must be a square and jpeg.
fileis the picture that you want to upload. e.g .uploadPicture(fs.createReadStream('./picture.jpeg'),callback)callbackis called when the request completes
.uploadFBPicture(picture id, xdistance_percent, ydistance_percent, xoffset_percent, yoffset_percent, callback)
Post a new picture to the current account from Facebook
picture idis the Facebook id of the picturexdistance_percentis the zoom percentage in x 0 full Zoom 1 no Zoomydistance_percentis the zoom percentage in x 0 full Zoom 1 no Zoomxoffset_percentis the offset from the left corner in percentageyoffset_percentis the offset from the top corner in percentagecallbackis called when the request completes
.deletePicture(picture id, callback)
Delete a picture from the current account
picture idis the id of the picture in string. This is obtained in the response ofgetProfilecallbackis called when the request completes
.getProfile(callback)
Get your user information, plus your preferences
.updateGender(gender, callback)
Update your gender
genderis your gender (0 = Male, 1 = Female)callbackis called when the request completes
.updateBio(bio, callback)
Update your bio
biois your bio (500 characters max.)callbackis called when the request completes
.updateJob(id, callback)
Update your current job
idid is the Facebook id of the jobcallbackis called when the request completes
.deleteJob(callback)
Delete your current job
callbackis called when the request completes
.updateSchool(id, callback)
Update your current school
idid is the Facebook id of the schoolcallbackis called when the request completes
.deleteSchool(callback)
Delete your current school
callbackis called when the request completes
.deleteAccount(callback)
Delete the current account
callbackis called when the request completes
.getUser(user id, callback)
Gets a user by id
user idis the user's id. This is obtained e.g viagetRecommendationscallbackis called when the request completes
.getShareLink(user id, callback)
Get a share URL for a user
user idis the user's id. This is obtained e.g viagetRecommendationscallbackis called when the request completes
.report(user id, cause id, cause text, callback)
Report a user
user idis the user's id. This is obtained e.g viagetRecommendationscause idis one of 4 (inappropriate photos), 1 (spam), or 0 (other)cause textis the optional reason for report when the causeId is 0 (other)callbackis called when the request completes
.createUsername(username, callback)
Create a web username for the current account
usernameis the username to requestcallbackis called when the request completes
.changeUsername(username, callback)
Change a web username for the current account if it's already been set
usernameis the username to requestcallbackis called when the request completes
.deleteUsername(username, callback)
Deletes the existing web username for the current account
callbackis called when the request completes
Tinder plus
.updatePassport(lat, lon, callback)
Update the passport position
latlatitude of the positionlonlongitude of the positioncallbackis called when the request completes
.resetPassport(callback)
Go back to your local position
callbackis called when the request completes
Examples
The following example authorizes a client, gets some nearby profiles, likes all of them, and sends a message to any of the ones that match
var tinder = require('tinderjs');
var client = new tinder.TinderClient();
var _ = require('underscore')
client.authorize(
<fb user token>,
<fb user id>,
function() {
var defaults = client.getDefaults()
var recs_size = defaults.globals.recs_size;
client.getRecommendations(recs_size, function(error, data){
_.chain(data.results)
.pluck('_id')
.each(function(id) {
client.like(id, function(error, data) {
if (data.matched) {
client.sendMessage(id, "hey ;)");
}
});
});
});
});
});Disclaimer
This is not an official Tinder app and as such its usage may violate Tinder's TOS. As with any experimental technology you should use it with caution.
License
MIT