Pour ceux qui la veulent mais qui n'ont pas le temps, j'aimerais automatiser + alpha l'application correspondante Tinder, qui est gratuite et facile à utiliser.
· Compte Facebook ・ Compte Tinder Veuillez utiliser Facebook pour l'enregistrement de Tinder pour l'automatisation. Pour ceux qui sont confus, nous vous recommandons de créer un nouveau compte pour éviter la calvitie (rires).
Vous devez obtenir un jeton d'accès pour vous connecter à Tinder à l'aide de l'api. Veuillez noter que la méthode d'obtention des jetons d'accès changera immédiatement en raison de changements dans les spécifications du site, etc., il est donc possible que vous ne puissiez pas utiliser la méthode que vous pouvez faire maintenant. Je suis assez coincé ici. Tout d'abord, mettez dans la bibliothèque qui reçoit le jeton amadou. (Référence: https://pypi.org/project/tinder-token/)
pip install tinder-token
Une fois dedans, essayez de créer et d'exécuter le programme suivant. Si vous ne disposez pas de la bibliothèque requise, veuillez l'ajouter si nécessaire.
get_token.py
from tinder_token.facebook import TinderTokenFacebookV2
mail = "Adresse e-mail pour la connexion Facebook"
password = "mot de passe facebook"
facebook = TinderTokenFacebookV2()
def sample_email_password(email: str, password: str) -> (str, str):
return facebook.get_tinder_token(fb_email=email, fb_password=password)
api_token = sample_email_password(mail,password)[0]
print(api_token)
Si vous exécutez cette opération et qu'une longue chaîne de caractères s'affiche, l'acquisition est réussie.
Maintenant que vous avez le code api avec le code précédent, vous pouvez enfin vous connecter.
import requests
s = requests.Session()
#Connectez-vous à Tinder
headers = {"X-Auth-Token": api_token, "Content-type": "application/json",
"User-agent": "Tinder/10.1.0 (iPhone; iOS 12.1; Scale/2.00)"}
s.headers.update(headers)
meta = s.get("https://api.gotinder.com/meta")
print(meta.text)
Placez le jeton api que vous avez obtenu précédemment dans la variable api_token. Il est plus facile de connecter les cordons, nous vous recommandons donc de les connecter. Ce n'est pas grave si vos informations sont publiées dans une rangée.
Vous pouvez collecter des informations utilisateur à proximité de vos points préférés en transmettant les informations de latitude et de longitude dans le message. Diverses informations telles que le nom de l'utilisateur et la photo d'identité sont stockées dans la variable utilisateur. Puisque ce programme obtient le nom, le nom doit être sorti de manière fluide.
url = "https://api.gotinder.com/" + endpoint
latitude = "latitude"
longitude = "longitude"
params = {"lat": latitude, "lon": longitude}
response = s.post(url, data=json.dumps(params))
limit = 10
params = {"limit": limit}
for i in range(3):
users = s.post("https://api.gotinder.com/user/recs", data=json.dumps(params))
content = users.content
if len(content) > 0:
content = content.decode("utf-8")
content = json.loads(content)
else:
break
#print(content)
for user in content["results"]:
#print(user)
print(user["name"])
Il est possible d'aimer n'importe quel identifiant en appuyant sur / like / {id} avec get.
url = "https://api.gotinder.com/" + endpoint
latitude = "latitude"
longitude = "longitude"
params = {"lat": latitude, "lon": longitude}
response = s.post(url, data=json.dumps(params))
limit = 10
params = {"limit": limit}
for i in range(3):
users = s.post("https://api.gotinder.com/user/recs", data=json.dumps(params))
content = users.content
if len(content) > 0:
content = content.decode("utf-8")
content = json.loads(content)
else:
break
#print(content)
for user in content["results"]:
#print(user)
print(user["name"])
id = user["_id"]
#Balayez vers la droite
s.get("https://api.gotinder.com/like/{}".format(id))
C'est vrai que le nombre de rencontres est important, mais j'ai pensé à une option pour ceux qui veulent encore de la qualité. Connaissez-vous l'API Face ++? FaceAPI a été développé par une société chinoise et est une API terrifiante qui marque la beauté du visage, ce que l'on appelle la valeur de déviation faciale. L'avantage de cette API est qu'elle peut être utilisée gratuitement.
Inscrivez-vous à partir de l'URL suivante. https://console.faceplusplus.com/register Une fois connecté, consultez la page Clé API et notez la clé API et le secret API.
Il est transformé en une classe considérant la coopération avec l'amadou. Placez la photo que vous souhaitez juger dans le même répertoire que le programme, et définissez test.jpeg sur le nom de fichier de l'image que vous souhaitez juger, et le score sera affiché. À propos, M. Shin 〇〇 était de 88,74 points. C'est un score vraiment élevé. Je pense que c'est une bonne idée d'essayer certains d'entre eux vous-même et de voir la vue du marché.
faceplus
import requests
import base64
class FacePlus:
def __init__(self,key,secret):
self.key = key
self.secret = secret
self.endpoint = 'https://api-us.faceplusplus.com'
def judge_face(self,path):
img_file = base64.encodestring(open(path, 'rb').read())
response = requests.post(
self.endpoint + '/facepp/v3/detect',
{
'Content-Type': 'multipart/form-data',
'api_key': self.key,
'api_secret': self.secret,
'image_base64': img_file,
'return_attributes': 'gender,age,headpose,facequality,eyestatus,emotion,ethnicity,beauty,mouthstatus'
}
)
result = response.json()
return result["faces"][0]["attributes"]["beauty"]["female_score"]
if __name__ == '__main__':
key = "API token"
secret = "API secret"
fp = FacePlus(key, secret)
print(fp.judge_face("test.jpeg "))
#Fonctionne avec le type automatique de Tinder Remarques ・ Pour ceux qui ont plusieurs photos, reportez-vous à la première. -Il est nécessaire de créer un dossier tmp, et les données photo seront enregistrées dans le dossier tmp. -Ajustez le même seuil en modifiant le score de l'énoncé de score if. ・ Essayez,Utilisez la phrase except pour repousser les photos qui n'ont pas de photo de visage.
import requests
import json
import os
from tinder_token.facebook import TinderTokenFacebookV2
import urllib.error
import urllib.request
import faceplus
facebook = TinderTokenFacebookV2()
key = "face++_api"
secret = "face++_api_secret"
mail = "facebook_mail"
password = "facebook_password"
border = 75
fp = faceplus.FacePlus(key,secret)
def sample_email_password(email: str, password: str) -> (str, str):
return facebook.get_tinder_token(fb_email=email, fb_password=password)
def download_file(url, dst_path):
try:
with urllib.request.urlopen(url) as web_file:
data = web_file.read()
with open(dst_path, mode='wb') as local_file:
local_file.write(data)
except urllib.error.URLError as e:
print(e)
def download_file_to_dir(url, dst_dir):
download_file(url, os.path.join(dst_dir, os.path.basename(url)))
# Obtenez un jeton Tinder
api_token = sample_email_password(mail,password)[0]
s = requests.Session()
# Connectez-vous à Tinder
headers = {"X-Auth-Token": api_token, "Content-type": "application/json",
"User-agent": "Tinder/10.1.0 (iPhone; iOS 12.1; Scale/2.00)"}
s.headers.update(headers)
meta = s.get("https://api.gotinder.com/meta")
print(meta.text)
endpoint = "v2/meta"
# Latitude et longitude de Shibuya
latitude = 35.658034
longitude = 139.701636
params = {"lat": latitude, "lon": longitude}
url = "https://api.gotinder.com/" + endpoint
response = s.post(url, data=json.dumps(params))
limit = 10
params = {"limit": limit}
name_list = []
for i in range(3):
users=s.post("https://api.gotinder.com/user/recs", data=json.dumps(params))
content = users.content
if len(content) > 0:
content = content.decode("utf-8")
content = json.loads(content)
else:
break
#print(content)
for user in content["results"]:
#print(user)
print(user["name"])
id = user["_id"]
name_list.append(user["name"])
photo = user['photos'][0]
Créer un fichier #tmp
dst_dir = 'tmp/'
print(photo['url'])
#Save file
download_file_to_dir(photo['url'], dst_dir)
f_name = photo['url'].split('/')[-1]
print(f_name)
try:
score = fp.judge_face("./tmp/"+f_name)
print(score)
if(score >= border):
# Balayer à droite
s.get("https://api.gotinder.com/like/{}".format(id))
except:
print("error")
#Résumé Même si c'était bon à faire, j'étais satisfait quand il a été terminé et je n'ai pas pu faire l'expérience de démonstration après tout. C'est une mauvaise chose pour les ingénieurs dont le but change en cours de route.(Lol)。
Suivez les règles et ayez une vie d'amadou amusante!
#Les références
[1]https://qiita.com/Fulltea/items/fe4d4214552476c28e88 [2]https://note.com/ryohei55/n/n72084219f751
Recommended Posts