Как определить уровень подписки PlayStation Plus (Essential/Extra/Deluxe) с помощью библиотеки psnawp Python?Python

Программы на Python
Ответить
Anonymous
 Как определить уровень подписки PlayStation Plus (Essential/Extra/Deluxe) с помощью библиотеки psnawp Python?

Сообщение Anonymous »

Я создаю трекер профиля PlayStation Network, используя Python и библиотеку psnawp (v2.x).
Все работает правильно для получения трофеев, игровой библиотеки и игровой статистики. Однако я не могу определить, каким уровнем подписки PS Plus в настоящее время обладает аутентифицированный пользователь.
Что мне нужно
Мне нужен способ программного определения наличия у пользователя активной подписки PS Plus и определения конкретного уровня:
  • Основной
  • Экстра
  • Делюкс/Премиум
Что я пробовал
Я попробовал три разных подхода, но все безуспешно:
1. API устаревшего профиля ()[/b] Я попытался получить доступ к устаревшей информации профиля, которая содержит поле плюса.

Код: Выделить всё

from psnawp_api import PSNAWP

psn = PSNAWP(npsso_token)
client = psn.me()
legacy = client.get_profile_legacy()

# Returns 0 even though I have an active Deluxe subscription
print(legacy.get("plus"))
Результат: Возвращает 0 независимо от фактического статуса подписки.
2. Конечная точка прямых разрешений Я попробовал вызвать API разрешений напрямую, используя токен доступа, сгенерированный аутентификатором.

Код: Выделить всё

import requests

access_token = psn.authenticator.token_response['access_token']
headers = {
"Authorization": f"Bearer {access_token}",
"User-Agent": "Mozilla/5.0" # Tried with and without user-agent
}

url = "https://m.np.playstation.com/api/entitlement/v1/users/me/entitlements"
r = requests.get(url, headers=headers)

print(r.status_code)
print(r.text)

Result: 403 Forbidden. The response is an HTML error page from Akamai, suggesting strict WAF/Bot protection or insufficient scopes on the token.
3. Опираясь на библиотеку игр, я попытался проверить, есть ли у пользователя определенные игры, доступные только в каталоге (например, Returnal, Ghost of Tsushima). Это оказалось ненадежным, потому что:
  • Пользователи сохраняют запись в библиотеке даже после истечения срока действия подписки (заблокированные игры).
  • Трудно отличить игру, купленную сразу, от игры, заявленной через каталог Extra/Premium.
Вопрос
Есть ли работающая в данный момент конечная точка или специальный метод в psnawp для надежного получения статуса и уровня пользователя PS Plus?
Если прямой API защищен, существует ли известный обходной путь или определенная область, необходимая для доступа к сведениям о подписке?

Подробнее здесь: https://stackoverflow.com/questions/798 ... luxe-using
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»