
SDK do aplicativo de namoro Hinge para Python para engenheiros de software solitários e entediados
SDK Python não oficial para a API do Hinge. Interaja programaticamente com o Hinge para buscar recomendações, enviar mensagens, baixar mídia e automatizar interações.
Para usar este SDK, você precisa de credenciais de autenticação válidas. Você pode armazená-las em um arquivo .env ou passá-las diretamente para o cliente.
BEARER_TOKEN: Seu token de autenticação JWT (ex.: L2euNWN...).SESSION_ID: O UUID da sessão atual.USER_ID: Seu ID único de usuário/jogador.Se você deseja usar sua conta Hinge existente sem arriscar flags de novos logins de dispositivos, deve extrair esses valores do tráfego de rede do aplicativo.
Nota: Você só precisa fazer isso uma vez para obter as variáveis corretas. Após capturá-las, você pode usar o método de Login por SMS para sessões futuras.
prod-api.hingeaws.net ou endpoints similares do Hinge.authorization (token Bearer)x-session-idx-device-idx-install-idUser ID (geralmente no corpo da resposta como subjectId ou similar)Você pode gerar novas credenciais fazendo login via SMS através do SDK. Isso realiza um fluxo de login novo.
from hingesdk.client import HingeClient
# These IDs must match the actual values associated with your account.
# You cannot use random UUIDs; they must align with the account's registered device.
client = HingeClient.login_with_sms(
phone_number="+15551234567",
device_id="your_device_id_uuid",
install_id="your_install_id_uuid"
)
print(f"BEARER_TOKEN={client.auth_token}")
print(f"SESSION_ID={client.session_id}")
print(f"USER_ID={client.user_id}")
Clone o repositório e instale o pacote:
git clone https://github.com/reedgraff/hingesdk
cd hingesdk
pip install .
Aqui está um exemplo mínimo para autenticar e buscar recomendações de usuários.
import os
from hingesdk.api import HingeAPIClient
# Initialize with credentials
client = HingeAPIClient(
auth_token=os.getenv("BEARER_TOKEN"),
session_id=os.getenv("SESSION_ID"),
user_id=os.getenv("USER_ID")
)
# Fetch recommendations
recs = client.get_recommendations()
print(f"Successfully fetched recommendations request.")
from hingesdk.client import HingeAPIClient
auth_token = 'your_auth_token'
user_id = 'your_user_id'
client = HingeAPIClient(auth_token=auth_token, user_id=user_id)
response = client.send_message(
subject_id='receiver_id',
message='Hello, this is a test message!'
)
print(response)
from hingesdk.api import HingeAPIClient
client = HingeAPIClient(auth_token=auth_token, user_id=user_id)
recommendations = client.get_recommendations()
print(recommendations)
from hingesdk.tools import HingeTools
from hingesdk.api import HingeAPIClient
from hingesdk.media import HingeMediaClient
api_client = HingeAPIClient(auth_token=auth_token, user_id=user_id)
media_client = HingeMediaClient(auth_token=auth_token)
tools = HingeTools(api_client, media_client)
tools.download_recommendation_content(output_path='path_to_save_images')
import os
import json
from hingesdk.tools import HingeTools
from hingesdk.api import HingeAPIClient
from hingesdk.media import HingeMediaClient
auth_token = os.getenv("BEARER_TOKEN")
session_id = os.getenv("SESSION_ID")
user_id = os.getenv("USER_ID")
api_client = HingeAPIClient(
auth_token=auth_token,
session_id=session_id,
user_id=user_id
)
media_client = HingeMediaClient(auth_token=auth_token)
tools = HingeTools(api_client, media_client)
# Example: Get user info
tools.create_profile_json(
source=ProfileSource.STANDOUTS,
output_file="standouts.json"
)
# Example: Like a user
with open("standouts.json", "r") as f:
profiles = json.load(f)
personData = profiles["35582109789..."]
# Like a user's question
questionIDToLike = "5c4a346828fd883a24..."
response = api_client.like_profile(
subject_id=personData["interaction_data"]["subject_id"],
rating_token=personData["interaction_data"]["rating_token"],
prompt={
"questionId": questionIDToLike,
"response": "I've been in Miami for a year and still haven't gone (╥﹏╥)"
}
)
print(response)
# Like a user's photo
# photoIDToLike = "2c6411ac-66e4-4194-..."
# response = api_client.like_profile(
# subject_id=personData["interaction_data"]["subject_id"],
# rating_token=personData["interaction_data"]["rating_token"],
# photo={
# "contentId": photoIDToLike,
# "comment": "So how many people have commented saying they've been here before?"
# }
# )
# print(response)
Este exemplo demonstra como raspar recomendações e filtrar perfis com base em critérios específicos (ex.: universidades de ponta).