
SDK приложения для знакомств Hinge на Python для одиноких скучающих разработчиков
Неофициальный Python SDK для API Hinge. Программное взаимодействие с Hinge: получение рекомендаций, отправка сообщений, загрузка медиа и автоматизация действий.
Для использования SDK необходимы действительные учётные данные. Вы можете сохранить их в файле .env или передать напрямую клиенту.
BEARER_TOKEN: Ваш JWT-токен аутентификации (например, L2euNWN...).SESSION_ID: Текущий UUID сессии.USER_ID: Ваш уникальный идентификатор пользователя/игрока.Если вы хотите использовать существующий аккаунт Hinge без риска блокировки из-за входа с нового устройства, необходимо извлечь эти значения из сетевого трафика приложения.
Примечание: Вам нужно сделать это только один раз, чтобы получить правильные переменные. После их захвата можно использовать метод SMS-логина для будущих сессий.
prod-api.hingeaws.net или аналогичным конечным точкам Hinge.authorization (Bearer token)x-session-idx-device-idx-install-idUser ID (часто находится в теле ответа как subjectId или аналогично)Вы можете сгенерировать новые учётные данные, войдя через SMS через SDK. Это выполнит свежий поток входа.
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}")
Клонируйте репозиторий и установите пакет:
git clone https://github.com/reedgraff/hingesdk
cd hingesdk
pip install .
Вот минимальный пример для аутентификации и получения рекомендаций пользователей.
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)
В этом примере показано, как собрать рекомендации и отфильтровать профили на основе определённых критериев (например, ведущие университеты).